Monad
モナドはflatMap(bind)とpure(return)の演算を持つ型構築子であり、連鎖する計算にコンテキスト管理を提供する。
目的
計算コンテキスト(オプション、非同期、エラー、状態)を抽象化し、連鎖する計算を優雅かつ安全にする。
メカニズム
M<T>はpure: T→M<T>とflatMap: M<T> × (T→M<U>) → M<U>を提供する。左単位元・右単位元の法則と結合法則を満たす。Optionモナドはnullを、Resultはエラーを、Futureは非同期を扱う。flatMapの連鎖がコンテキストを管理する。
ユースケース
- 関数型プログラミング
- エラーハンドリング
- 非同期処理のコンポジション