小编jim*_*ver的帖子

IO monad在C#等语言中是否有意义

在花了很多时间阅读和思考之后,我想我终于掌握了monad是什么,它们是如何工作的,以及它们对它们有用的东西.我的主要目标是弄清楚Monad是否适用于我在C#中的日常工作.

当我开始学习monad时,我得到的印象是它们是神奇的,并且它们以某种方式使IO和其他非纯函数变得纯粹.

我理解monad对于.Net中LINQ之类的东西的重要性,而Maybe对于处理不返回有效值的函数非常有用.我也很欣赏需要限制代码中的状态并隔离外部依赖,我希望monad也可以帮助它们.

但我终于得出结论,IO和处理状态的monad是Haskell的必需品,因为Haskell没有别的方法可以做到(否则,你不能保证排序,有些调用会被优化掉.)但是对于更多的主流语言,monad并不适合这些需求,因为大多数语言已经很容易处理和状态和IO.

所以,我的问题是,公平地说IO monad真的只对Haskell有用吗?是否有充分的理由在C#中实现IO monad?

c# monads haskell

15
推荐指数
4
解决办法
1975
查看次数

标签 统计

c# ×1

haskell ×1

monads ×1