From e79ba18bbb82c1f18b9bed61108c42a7ebcd2ba6 Mon Sep 17 00:00:00 2001 From: FizzyElt Date: Mon, 1 Jan 2024 22:11:48 +0800 Subject: [PATCH 1/2] create roadmap --- trees/fp-0001.tree | 2 ++ trees/roadmap.tree | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 trees/roadmap.tree diff --git a/trees/fp-0001.tree b/trees/fp-0001.tree index 6a4f795..4e20504 100644 --- a/trees/fp-0001.tree +++ b/trees/fp-0001.tree @@ -18,6 +18,8 @@ \p{這個網站的準則,是教導抽象的數學概念,讓學習者最終對實際 functional programming 有一定的了解,並大致理解現代語義學研究,或許能夠應用其成果。那麼,我們開始回顧 lambda calculus 與可計算性的沿革,開始學習 functional programming 吧} +\transclude{roadmap} + \transclude{alg-0001} \transclude{alg-0003} \transclude{alg-0005} diff --git a/trees/roadmap.tree b/trees/roadmap.tree new file mode 100644 index 0000000..8058fad --- /dev/null +++ b/trees/roadmap.tree @@ -0,0 +1,42 @@ +\title{地圖} +\meta{author}{false} + +\p{此地圖為一大方向,每個主體內會有延伸,包含實例、名詞解釋等等,類似於心智圖,而未來也有可能異動} + +\ol{ + \li{lambda calculus} + \li{用 recursion 解釋可計算性} + \li{加上 simply type} + \li{解釋型別規則} + \li{建立 STLC categorical semantic} + \li{加上 polymorphism} + \li{解釋型別規則} + \li{建立 #{E \to B} categorical semantic} + \li{解釋 #{\lambda 2} 的 polymorphic property} + \li{解釋 recursive type} + \li{連結 F-algebra} + \li{變成 dependent type} + \li{解釋型別規則} + \li{解釋模型(The natural model) + \ul{ + \li{topos} + \li{topos fundamental theorem} + \li{presheaf} + \li{representable natural transformation} + } + } + \li{進入真正的應用} + \li{side effect} + \li{concurrency} + \li{安全性 + + \ul{ + \li{記憶體安全與子結構類型} + \ul{ + \li{(?) proof nets} + } + \li{整體安全性不是只關乎記憶體} + } + } + \li{domain language} +} From 3e275f4a95b036cd2745b60a8b49afefca9a8f58 Mon Sep 17 00:00:00 2001 From: FizzyElt Date: Thu, 11 Jan 2024 22:41:36 +0800 Subject: [PATCH 2/2] update readme and home page --- README.md | 31 +++++++++++++++++++++++++++++++ trees/fp-0001.tree | 8 -------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bb56b51..3a653b7 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,37 @@ 這是一個關於 Functional Programming 名詞解釋及知識點整理的地方,會包含一些情境及範例解說,目的在於消除學習 FP 過程中因不懂緣由所產生的困惑。 +## Roadmap + +1. lambda calculus +2. 用 recursion 解釋可計算性 +3. 加上 simply type +4. 解釋型別規則 +5. 建立 STLC categorical semantic +6. 加上 polymorphism +7. 解釋型別規則 +8. 建立 \(E \to B\) categorical semantic +9. 解釋 \(\lambda 2\) 的 polymorphic property +10. 解釋 recursive type +11. 連結 F-algebra +12. 變成 dependent type +13. 解釋型別規則 +14. 解釋模型(The natural model) + - topos + - topos fundamental theorem + - presheaf + - representable natural transformation +15. 進入真正的應用 +16. side effect +17. concurrency +18. 安全性 + - 記憶體安全與子結構類型 + - (?) proof nets + - 整體安全性不是只關乎記憶體 +19. domain language + +### ⚠️ 部份完成小主題內容,整理後移除 + - [pure function](./trees/fp-000J.tree) - immutable - curry diff --git a/trees/fp-0001.tree b/trees/fp-0001.tree index 4e20504..bbfa552 100644 --- a/trees/fp-0001.tree +++ b/trees/fp-0001.tree @@ -19,11 +19,3 @@ \p{這個網站的準則,是教導抽象的數學概念,讓學習者最終對實際 functional programming 有一定的了解,並大致理解現代語義學研究,或許能夠應用其成果。那麼,我們開始回顧 lambda calculus 與可計算性的沿革,開始學習 functional programming 吧} \transclude{roadmap} - -\transclude{alg-0001} -\transclude{alg-0003} -\transclude{alg-0005} -\transclude{cat-0003} -\transclude{fp-0002} -\transclude{fp-000J} -\transclude{cat-0001}