nobsun です。

> 遅延評価やリストの内包表記は割とすんなり頭に入りました。

> 今はモナドが頭に入らなくててこずっています。
> # Haskellそのものより先に関数型言語の理屈を勉強したほうがいいのかも…^^:

「モナドがよくわからない」というのは Haskell 最初に接したときの
共通した感想ですよね。モナドを I/O に適用したことが、関数プログラミング
理論的背景とI/Oとの相性の悪さをかなり解消したものの、Haskell の普及を
阻む原因になってしまっているのかもしれませんね。(もちろん、モナドは
I/O のためだけにあるわけではないのですが。。。)

Haskell 1.3 より前には Monad はありませんでした。
入出力は Dialogue という仕組みでやっていました。

歴史的には(ちょっと正確ではないですが)、

Monad が型構築子クラスとして、Haskell (Gofer) に持ち込まれた頃に
「リスト内包表記」が一般化され、「モナド内包表記」が生れ、
それから、「do 構文」という構文糖衣が生れた。

という経緯がありました。

私の場合は、Monad は単に do構文を使うための型構築子クラスということで
とりあえずしのいでいます。^^;

--nobsun 

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/