自行實作 Either
Either 也是看似很玄的概念,讓我們不用處理 Exception,且可使用 map
與 chain
直接改變 Either 內部 Value,其實只要 20 行左右就可自行實作 Either,讓我們對 Either 更加了解。
失くすものさえない今が強くなるチャンスよ
Either 也是看似很玄的概念,讓我們不用處理 Exception,且可使用 map
與 chain
直接改變 Either 內部 Value,其實只要 20 行左右就可自行實作 Either,讓我們對 Either 更加了解。
Maybe 也是看似很玄的概念,讓我們不用處理 undefined
,且可使用 map
、ap
與 chain
直接改變 Maybe 內部 Value,其實只要 20 行左右就可自行實作 Maybe,讓我們對 Maybe 更加了解。
Monad 一直是很玄的概念,其實只要自行實作一次,也就沒這麼遙不可及,事實上 Maybe、Either 與 Future 就是 Monad。
Monad 必須實現 Functor、Apply、Applicative 與 Chain,其中學習 Applicative 是必經過程。
Modadic Type 的特色之一是支援多種 Category,可根據對應 Category 使用適合 Function。
Functor、Apply 與 Chain 本質都是 Typeclass,只是各提供不同方式處理 Function 而已。
Monad 必須實現 Functor、Apply、Applicative 與 Chain,其中學習 Chain 是必經過程。
Monad 必須實現 Functor、Apply、Applicative 與 Chain,其中學習 Apply 是必經過程。
Functor 是 Monadic Programming 中最基本 Typeclass,透過自行實作 Functor 可更清楚了解 Functor 本質。
Functor 的 Composition Law 是重構 Functor 常見技巧,但可惜 Monad 並不存在 Composition Law,但仍可使用 Function 都有的 Associativity Law 與 Monad 特有的 Associativity Law 來組合。
Monad 遵循 3 個 Monad Laws,專門描述 chain
的 3 個特性,包含兩個 Identity Law 與一個 Associativity Law。
Functor 是學習 FP 第一個會遇到的 Algebraic Data Type,Maybe、Either 與 Future 都是基於 Functor 後加以展開。
Apply 為常見的 Algebraic Data Type,也是 Monad 必須實現的 Typeclass。
Applicative 為常見的 Algebraic Data Type,也是 Monad 必須實現的 Typeclass。
Chain 為常見的 Algebraic Data Type,也是 Monad 必須實現的 Typeclass。
Sanctuary 回傳 Maybe 版本的 find
實務上很好用,這種看似很玄的 find
也能自行實作嗎 ?
Functor 遵循 2 個 Functor Laws,專門描述 map
的 2 個特性:Identity 與 Composition。
Monad 一直是學習 Functional Programming 的一大關卡,事實上天天在用的 Maybe、Either 與 Future 都是 Monad,而 Promise 則是很像 Monad 但又不是真正 Monad。