/magic-in-ten-mins

十分钟魔法练习

Primary LanguageHTMLCreative Commons Attribution 4.0 InternationalCC-BY-4.0

十分钟魔法练习

Rust版-光量子 | C++版-图斯卡蓝瑟 | C#版-CWKSC

抽象与组合

希望能在十分钟内教会你一样魔法

QQ群:1070975853 | Telegram Group

目录中方括号里的是前置技能。

类型系统

偏易 | 代数数据类型(Algebraic Data Type)[Java 基础] | Markdown | HTML

偏易 | 广义代数数据类型(Generalized Algebriac Data Type)[Java 基础, ADT] | Markdown | HTML

偏易 | 余代数数据类型(Coalgebraic Data Type)[Java 基础, ADT] | Markdown | HTML

偏易 | 单位半群(Monoid)[Java 基础] | Markdown | HTML

较难 | 高阶类型(Higher Kinded Type)[Java 基础] | Markdown | HTML

中等 | 单子(Monad)[Java 基础, HKT] | Markdown | HTML

较难 | 状态单子(State Monad)[Java 基础, HKT , Monad] | Markdown | HTML

中等 | 简单类型 λ 演算(Simply-Typed Lambda Calculus)[Java 基础, ADT ,λ 演算] | Markdown | HTML

中等 | 系统 F(System F)[Java 基础, ADT ,简单类型 λ 演算] | Markdown | HTML

中等 | 系统 F ω(System F ω)[Java 基础, ADT ,系统 F] | Markdown | HTML

较难 | 构造演算(Calculus of Construction)[Java 基础, ADT ,系统 F ω] | Markdown | HTML

偏易 | π 类型和 Σ 类型(Pi type & Sigma type)[ADT ,构造演算] | Markdown | HTML

计算理论

较难 | λ 演算(Lambda Calculus)[Java 基础, ADT] | Markdown | HTML

偏易 | 求值策略(Evaluation Strategy)[Java 基础, λ 演算] | Markdown | HTML

较难 | 丘奇编码(Church Encoding)[λ 演算] | Markdown | HTML

很难 | 斯科特编码(Scott Encoding)[构造演算, ADT] | Markdown | HTML

中等 | Y 组合子(Y Combinator)[Java 基础,λ 演算,λ 演算编码] | Markdown | HTML

编程范式

简单 | 表驱动编程(Table-Driven Programming)[简单 Java 基础] | Markdown | HTML

简单 | 续延(Continuation)[简单 Java 基础] | Markdown | HTML

中等 | 代数作用(Algebraic Effect)[简单 Java 基础,续延] | Markdown | HTML

中等 | 依赖注入(Dependency Injection)[Java 基础, Monad ,代数作用] | Markdown | HTML

中等 | 提升(Lifting)[Java 基础, HKT , Monad] | Markdown | HTML

编译原理

较难 | 解析器单子(Parser Monad)[Java 基础, HKT , Monad] | Markdown | HTML

中等 | 解析器组合子(Parser Combinator)[Java 基础, HKT , Monad] | Markdown | HTML