Haskellの勉強を始めた

オブジェクト指向の考え方で設計し、プログラムを作ろうとするとき、次のような部分で悩み、行き詰まるようになりました。

  • どこをオブジェクトの境界にするか
  • 引数にオブジェクトをとり、そのオブジェクトの状態を変更する手続きを使うべきか、使わないべきか
  • デメテルの法則に厳密に従うべきか(wikipedia:デメテルの法則

そこで、オブジェクト指向や手続き型とはまったく異なる、関数型プログラミング言語であるHaskellの勉強を始めました。Haskellを勉強することで、これらの悩みの解決につながるのではないかと思ったからです。ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門 を買って読んでいます。自分には理解するのが難しいですが、遅延評価が凄いというのがわかりました。まだ勉強中です。