Skip to content

asukaminato0721/magic-in-ten-mins-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

十分钟魔法练习

改写自 十分钟魔法练习-玩火 原版为 Java 实现

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

抽象与组合

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

QQ 群:1070975853 | Telegram Group

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

Usage

yarn

yarn
yarn test

npm

npm i
npm test

如果整体测试过慢,就照着 package.json 里的 Continuation 手动加测试命令。

npm run Continuation

类型系统

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

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

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

  • 偏易 |Markdown |单位半群 (Monoid)[TypeScript 基础]

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

  • 中等 |Markdown |单子 (Monad)[TypeScript 基础, HKT]

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

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

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

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

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

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

计算理论

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

较难 |Markdown |De Bruijn 索引 (De Bruijn index)[TypeScript 基础,ADT,λ 演算]

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

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

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

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

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

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

形式化验证

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

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

编程范式

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

  • 简单 |Markdown |续延 (Continuation)[简单 TypeScript 基础]

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

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

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

编译原理

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

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

About

十分钟魔法练习 TypeScript 版

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published