発端 モナドの正体が分かると、 次はモナドを実装してみたくなるものです。 という訳で試しに Python でモナドを実装してみましょう。 別にどんな言語でも構わないのですが、 クロージャや部分適用が簡単に使えない言語では本質的でないところで苦労する羽目になるので、 今回は Python を使うことにしました。 なお、今回作成した Python によるモナドの実装は GitHub で公開中です。 方針 モナドの具体例で一番簡単なものは Maybe でしょう。 まずは Maybe を Python のクラスとして実装して、 そこから一般的なところを括りだして Monad クラスを作ることにしましょう。 モナドの構成要素は以下の3つです: 普通の値をモナドにラップするための型 m普通の値を m にラップするための関数 returnモナドでラップされた普通の値を取り出して処理を行う演算子 >>=