有本書買很久了,卻始終沒機會讀完,或許這是個機會讓自己讀完它!
Functional Programming In Scala 是用 Scala 2 寫的,剛好我也只熟悉 Scala 2,所以就讓我們一邊分享 FP 的同時 ,一邊用 Scala 3 改寫它們吧,順便看看 Scala 3 多了哪些酷東西!
如何處理有上下文關係的解析 想像一下若我們要解析開頭為數字,然後後面為 0 到 n 個字元 'a',以下的字串皆滿足此需求:0、1a、2aa、4aaaa, 但...
從今天開始要進入 Part 3 啦!Part 3 主要是 functional programming 下更高層的抽象,也就是說把之前各種主題下常看到的模式概念...
用 monoids folding List Monoid 跟 List 有著相當緊密的關係,Day 4 和 Day5 的 List 中我們有用到 2 個 fu...
Monoid 的同態 (homomorphisms) 直接看例子吧! "foo".length + "bar".leng...
讓我們繼續從之前的程式中抽象出更高層的東西吧!今天要講的介面是 Functor。 Functors - map 的抽象介面 從 Day 3 開始,每個主題下的...
Monads - flatMap 和 unit 的抽象介面 在介紹 Monad 之前,先聊聊一個之前有在 Option 和 Parser 下用到的 functi...
Monads 定律 1 - 結合律 (Associative Law) 假設我們有個 Item 和 Order 類別, case class Item(name...
今天要介紹一個功能沒有 Monad 這麼強,但比較泛用的抽象介面,Applicative Functors, 在 Day 26 - Monads (1) 中,我...
Monad 和 Applicative Functors 的差異 假設我們用 Option 來從 Map 資料中找東西,2 個查詢彼此獨立,通常可以輕鬆的用 m...
Applicative Fuctor 定律 為求說明,以下回顧 Applicative Functor 的方法宣告會將所有參數完整呈現,故會與 Day 28...