6

令我震惊的是,每个单子的理解都以return. 这不会有效地使它们与应用程序编程同构吗?为什么我们有带约束的单子推导Monad而不是带约束的应用Applicative推导?

Applicative 的这种do-like 符号同样让我觉得与 monad 理解非常相似。

4

1 回答 1

14

不,你可以用 monad 推导编写 bind:

m >>= f == [ b | a <- m, b <- f a ]
于 2012-09-22T17:51:01.337 回答