当 Monad 是 Applicative 而 Applicative 是 Functor 时,为什么 monad 不组合。您可以在网络上的许多文章中看到这个继承链(我已经阅读过)。但是当 Functors 和 Applicatives 组成时,为什么 Monads 会打破这个?
有人可以在 scala 中提供一个简单的例子来演示这个问题吗?我知道这个问题很多,但是如果没有一个简单的例子就很难理解。
最佳答案
托尼·莫里斯 (Tony Morris) 发表了关于 monad 更改器(mutator)的演讲,很好地解释了这个精确的问题。
http://tonymorris.github.io/blog/posts/monad-transformers/
他使用haskell,但这些例子很容易翻译成scala。
关于scala - 为什么单子(monad)不在scala中组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33149471/