MLにもモナドがある:すべてはモジュールに関する

2025-06-24
MLにもモナドがある:すべてはモジュールに関する

Haskellにおけるモナドの使用が、その言語特有の機能であるという一般的な認識に異議を唱える記事です。著者は、モナドは言語設計の問題ではなく、ライブラリ設計の問題であり、モジュール性を備えた言語であればどれでも実現可能だと主張しています。この記事では、MLを用いて、OptionモナドやIOモナドなど、モジュールシステムを使ってモナドを実装する方法を示しています。MLがモナドを使用できることを認めつつも、著者は、デフォルトでモナドが省略されているのは、コードの柔軟性の低下や関数型スタイルとモナド的スタイル間の移行の困難さといった潜在的な欠点によるものだと示唆しています。