點燈坊

新しいことを始めるのに、遅すぎる挑戰はない

タグ : Category

自行實作 Either

Either 也是看似很玄的概念,讓我們不用處理 Exception,且可使用 mapchain 直接改變 Either 內部 Value,其實只要 20 行左右就可自行實作 Either,讓我們對 Either 更加了解。

自行實作 Maybe

Maybe 也是看似很玄的概念,讓我們不用處理 undefined,且可使用 mapapchain 直接改變 Maybe 內部 Value,其實只要 20 行左右就可自行實作 Maybe,讓我們對 Maybe 更加了解。

自行實作 Monad

Monad 一直是很玄的概念,其實只要自行實作一次,也就沒這麼遙不可及,事實上 Maybe、Either 與 Future 就是 Monad。

Monad 並沒有 Composition Law

Functor 的 Composition Law 是重構 Functor 常見技巧,但可惜 Monad 並不存在 Composition Law,但仍可使用 Function 都有的 Associativity Law 與 Monad 特有的 Associativity Law 來組合。

深入淺出 Monad

Monad 一直是學習 Functional Programming 的一大關卡,事實上天天在用的 Maybe、Either 與 Future 都是 Monad,而 Promise 則是很像 Monad 但又不是真正 Monad。