magic-in-ten-mins-csharp
magic-in-ten-mins-csharp copied to clipboard
十分钟魔法练习
十分钟魔法练习
Language: zh-Hant 繁體中文
改写自 十分钟魔法练习-玩火 ,C# 版本
其他版本:Rust版 - 光量子 | C++版 - 图斯卡蓝瑟
抽象与组合
希望能在十分钟内教会你一样魔法
QQ群:1070975853 | Telegram Group
目录中方括号里的是前置技能。
类型系统
偏易 | 代数数据类型(Algebraic Data Type)[C# (interface, class)]
偏易 | 广义代数数据类型(Generalized Algebriac Data Type)[C# (interface, class),ADT]
偏易 | 余代数数据类型(Coalgebraic Data Type)[C# (Func, delegate),ADT]
偏易 | 单位半群(Monoid)[C# (IEnumerable, Aggregate(), Extension Methods, IComparable)]
较难 | 高阶类型(Higher Kinded Type)[C# (interface, List)]
中等 | 单子(Monad)[C# 基础,HKT]
较难 | 状态单子(State Monad)[C# (Func, Tuple),HKT,Monad)]
中等 | 简单类型 λ 演算(Simply-Typed Lambda Calculus)[Java 基础,ADT,λ 演算] | Markdown | HTML
中等 | 系统 F(System F)[Java 基础,ADT,简单类型 λ 演算] | Markdown | HTML
中等 | 系统 F ω(System F ω)[Java 基础,ADT,系统 F] | Markdown | HTML
计算理论
较难 | λ 演算(Lambda Calculus)[C# (Guid),ADT]
偏易 | 求值策略(Evaluation Strategy)[Java基础,λ演算] | Markdown | HTML
较难 | 编码(Encode)[λ演算] | 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