MonadはIOとdo記法のためにあると説明した方がわかりやすくね?

当初、@SubaruGさんの 「Haskell は言語組み込みで Monad を(正確には (>>=) や (>>) や fail を)特別扱いしている.」 という発言の意図がわからなかったので、流れを追っかけたついでにまとめました。
5
前へ 1 ・・ 5 6
NaOHaq(苛性ソーダ) @NaOHaq

Monad導入 → (たぶんListのために)Monad Comprehension導入 → (たぶんオーバーキルだったので)List Comprehensionに限定 → Monad Comprehension復活(今ここ)

2012-11-28 12:15:34

@shelarcyさんからツッコミ

shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq List Comprehension の歴史について誤解がありますね。List Comprehension は、Monad 登場以前から Miranda 由来で存在していた機能で、Monad Comprehesion の機能を制限して入ったものではありません。

2012-11-29 07:56:52
shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq Monad が登場してきたことで一般化した Monad Comprehension が提案され、一時 Monad Comprehension が入り、削除されて List Comprehension だけに戻った、というのが正確なところです。

2012-11-29 07:57:11
shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq List Comprehension は元々存在(Miranda 由来) → Monad が提案される → Monad のための構文糖衣として List Comprehension を一般化した Monad Comprehension が提案される →

2012-11-29 07:57:34
shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq 別の構文糖衣として do 記法が提案される → Haskell 1.3 で Monad と do 記法が入る → Haskell 1.4 で Monad Comprehension が入る →

2012-11-29 07:57:51
shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq (Monad Comprehension よりも do 記法が好まれた、エラーメッセージが分かり難かった等の理由から)Haskell 98 で Monad Comprehension が削除されて List Comprehension だけに戻る →

2012-11-29 07:58:32
shelarcy(しぇらーしぃ) @shelarcy

@NaOHaq (SQL 用の DSL や配列などで利用したいという要求から)GHC 拡張として Monad Comprehension が復活 ← 今ココ

2012-11-29 07:59:11

以下参考文献

Giorgidze, George and Grust, Torsten and Schweinsberg, Nils and Weijers, Jeroen, (PDF)Bringing Back Monad Comprehensions

前へ 1 ・・ 5 6