Skip to content

niltok/magic-in-ten-mins

Repository files navigation

十分钟魔法练习

Rust 版 - 光量子 | C++ 版 - 图斯卡蓝瑟 | C# 版 - CWKSC | Lua 版 - Ofey Chan | Ocaml 版 - 光吟 | Python 版 - penguin_wwy | Typescript 版 - wuyudi

抽象与组合

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

QQ群:1070975853 | Telegram Group

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

类型系统

偏易 | Markdown | HTML | 代数数据类型(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 | De Bruijn 索引(De Bruijn index) [Java 基础,ADT,λ 演算]

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

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

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

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

中等 | Markdown | HTML | μ(Mu) [Java 基础,构造演算, Y 组合子]

中等 | Markdown | HTML | 向量和有限集(Vector & FinSet) [构造演算, ADT ,依赖类型模式匹配]

形式化验证

偏易 | Markdown | HTML | Curry-Howard 同构(Curry-Howard Isomorphism) [构造演算]

偏难 | Markdown | HTML | 莱布尼兹相等性(Leibniz Equality) [构造演算]

编程范式

简单 | 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]