Prev: Haskell におけるモナドのサポート TOC: 目次 Next: 恒等モナド

イントロダクション

Part II がカバーしているモナドは、Andy Gill の Monad Template Library を に加えて、標準の Haskell 型の混合を含みます。この Monad Template Library は Glasgow Haskell Compiler の階層ライブラリ Control.Monad 以下に含まれています。

これらのモナドについての説明のいくつかは、 Haskell Wiki からとっています。 ここでカバーされているモナドの他にも、Haskell ではいろいろなところに モナドが登場します。たとえば、パーザコンビネータモナドライブラリ Parsec などです。これらのモナドは、このリファレンスの範囲を越えていますが、 それぞれのライブラリに説明文書がついています。 example 16ソースコードを見れば、 Parsec ライブラリの雰囲気が味わえます。

モナド 計算のタイプ >>= の組合せ戦略
Identity N/A — モナド変換子で利用 束縛された関数は入力値に適用される
Maybe 結果を返さないかもしれない計算 Nothing の入力は Nothing の出力になり、
Just x の入力では x が束縛された関数 の入力となる
Error 失敗あるいは例外を投げられる計算 失敗はその失敗についての説明情報を記録する。 束縛は、束縛された関数を実行することなく失敗情報を渡すか、 あるいは、成功したときの値を束縛された関数の入力として使う
[] (List) 可能な結果を複数返す、非決定性計算 束縛された関数を入力リストに写像し、結果のリストを連結して、すべての 可能な入力からのすべての結果のリストを得る
IO I/O を行う計算 I/O 動作のならびを束縛順に実行する
State 状態を保持する計算 束縛された関数を入力値に適用し、入力された状態に適用される 状態遷移関数を生成する
Reader 共有された環境から読み込みを行う計算 束縛された関数は同じ環境を使う入力の値に適用される
Writer 計算する値とは別にデータを書き出す計算 書き出されるデータは値とは別に保持される。束縛された関数は入力された 値に適用され、書き出すものは書き出しデータストリームに追加される
Cont 中断および再開が可能な計算 束縛された関数は継続連鎖中に挿入される

Prev: Haskell におけるモナドのサポート TOC: 目次 Next: 恒等モナド