今回の改訂第2版では、「第13章 関数型言語でなぜつくるのか」と題して関数型言語を解説する文章を書きました。 関数型言語は当初2-4ページぐらいのコラムで解説するつもりでしたが、実際に書いてみるとその程度のボリュームでは具体的なことはほとんど伝えられなかったため、専用の章を立てて本格的に解説することにしました。 ここでは、第13章を記述するに当たって作成した資料を掲載します。 Haskellの型システム Haskellには代数データ型と型クラスという仕組みがあります。モナドはこの2つの仕組みを利用しているため、モナドを理解するためにはこの2つを理解する必要があります。 「UMLモデリングレッスン」風に、概念モデルで表現すると次のようになります。 代数データ型(概念モデル) 以下に示すのは代数データ型の概念モデルです。 型クラス(概念モデル) 型クラスは、アドホック多相を実現するための仕組み