モナド
「文脈を持ち運ぶ」計算を連鎖させるための関数型の抽象。Optional、Result、Promise、Listは、言語がそう呼ぼうと呼ぶまいと、すべてモナドである。
型M<T>が次の2つの操作を持てばモナドだ。of(値を文脈に持ち上げる)と、flatMap/bind(T → M<U>という関数を、入れ子にせず連鎖させる)。これにより、失敗しうる処理、非同期処理、複数の値を返す処理を、ステップごとにエラー処理を書くことなく合成できる。
「自己関手の圏におけるモノイド」という説明は、わかりにくさで有名だ。実際には、Promise.thenやRustの?演算子を使ったことがあれば、すでにモナドを使っている。