learn:functional-programming
目錄表
Functional Programming 筆記
Library
值 vs Functor
f | g | composition |
---|---|---|
pure | pure | compose(f, g) |
effects | pure(unary) | f.map(g) |
effects | pure(n-ary) | f1.map(g).ap(f2) |
effects | effects | m.chain(f).chain(g) |
Functor
ADT | Effect |
---|---|
Either | 處理錯誤情境 |
Future | #TODO |
Identity | #TODO |
IO | 處理永不失敗的同步計算 |
Maybe | 處理無值情境 |
Reader | #TODO |
Tuple | #TODO |
State | #TODO |
Either
- 處理錯誤情境
- 分成
Either.Right
和Either.Left
Either.Right
會繼續跑,而Either.Left
則會忽略後續運算,執意將手上的值傳下去
- snippet.javascript
const addOne = num => Right(R.add(1)); const error = () => Left(new Error('error')) Right(10) .chain(addOne) .map(R.add(2)) .inspect() // Right(13) Right(10) .chain(error) .map(R.add(2)) .inspect() // Left(Error: error)
Future
TODO
Identity
TODO
IO
- 處理永不失敗的同步計算
Maybe
- 處理無值情境 ( null || undefined )
Reader
- 用來避免中間傳送無用的
dep
Tuple
TODO
State
* <https://ithelp.ithome.com.tw/articles/10280554>
Articles
learn/functional-programming.txt · 上一次變更: 2022/06/21 08:47 由 admin_wi1d5ky