ふつうのHaskellプログラミング 9章 (4日目) / 11章 (2日目)

9章の演習問題終了。ここまでの内容が理解できていれば、難なくクリアできるはずの問題だったな。解き終わるまで気付かなかったけど。
Haskellでプログラミングをしていると、慣れないせいか、よくコンパイルエラーになる。どうも型の理解があいまいなままコードを書いているようだ。できるようになれば、たぶんスムーズにカタがつくんだろうな、とは思うのだけど、まだまだうまくいかない。この感覚は、(あんまりプログラミングとは関係ないけど)高校物理に近いかな。高校物理では、単位をちゃんと理解するまで点数が取れない。その代わり、クリアーな理解ができれば、超難問でもない限り、結構得点が稼げる。単位(型)を揃えるようにするだけで、自然と得点がついてくるからだ。
11章のモナドについては、何度か読み返しているうちに、どんなものなのかがおぼろげながら分かってきた。関数と関数をつなぐのが目的らしい。モナドの定義のしかたによって、関数のつなぎかたが変わってくる、というのは面白い。これはたしかに手続き型からは出てこない発想だな。
ということで、明日あたり演習問題をやってみるか。今日の理解は、実は単なる知ったかぶりにすぎなかった、という結果にならないよう祈ろう。