モナド
#プログラミング
https://ja.wikipedia.org/wiki/モナド_(プログラミング)
順次・分岐・反復を構造化するための汎用的な概念
特定の法則(圏論, モナド則)を満たす インタフェースを持つ
互いの作用は排他的にもかかわらず、合成容易性の高い作り方を体系的に示す
形式手法にも使用可能
プログラミングのモナド発見の経緯
はじめての Monad, Monad Transformer, Extensible Effects #Monad_Transformer
Monad (モナド) とは、pure と flatMap というメソッドを持ち、Monad 則1)を成立させるものである。
~
つまり、pure と flatMap を定義するだけで、様々なメソッドが使えるように抽象化されているのである。
様々なメソッドの中でも特に重要な点は、flatMap と map が定義されていて、 Monad のための syntax sugar である for 式が使えるということである。
関連
コンポーサブル
状態管理ではなく関係と関連に着目した状態法則を考える
交換法則・結合法則
モノイド