是不是对MonadComprehensions足够强大?为什么不?

Dag*_*Dag 6 haskell

令我感到震惊的是,每个monad理解都以a结尾return.这不能有效地使它们与应用程序编程同构吗?为什么我们有一个Monad约束的monad理解而不是一个约束的应用理解Applicative

对于Applicative来说,这种类似于符号的符号类似于monad理解.

Sjo*_*her 14

不.你可以用monad comprehensions编写bind:

m >>= f == [ b | a <- m, b <- f a ]
Run Code Online (Sandbox Code Playgroud)

  • @Dag"当RHS上没有使用'绑定'名称时?" - 这是一个有趣的观察结果,是的,它是可能的:你问题中的链接准曲does几乎就是这样.是否*懂得*完全是另一个问题...不幸的是`Applicative`没有被定义为`Monad'的超类(虽然理论上应该是这样)所以事情可能变得丑陋. (4认同)