ML也有Monad?模块化设计的威力
2025-06-24
Haskell的Monad常被认为是其独有特性,但作者认为这是一种误解。Monad并非语言设计问题,而是库设计问题。任何支持模块化的语言都可以实现Monad。文章通过ML语言的例子,展示了如何利用模块系统实现Monad,包括Option Monad和IO Monad。作者认为,ML完全可以实现Monad,但默认不这样做是因为Monad并非总是最佳选择,它可能导致代码难以转换和缺乏灵活性。
阅读更多
开发