Gre*_*eek 3 monads haskell functional-programming
在我的第一个分析中,我会回答是,但我无法找到任何明确说明这一事实的参考.
是的他们可以.此外,它们可以被视为(此列表非常不完整):
在这些(包括你的)中,我会声称只有最后三个定义告诉我们monad 是什么:一个代数结构.其他一切都告诉我们monad用于什么,给出一个(坏到有缺陷的)隐喻,说明一个特定的微积分如何表达monad,或者像你的一样,详细说明monads在某个参考框架中的含义(例如lambda演算).
将它们视为计算/效果的具体化听起来就像一个本质上没有被破坏的心理模型,但我仍然建议将它留在后面并将monad视为代数结构,没有任何特定的参考用于表达它们的微积分:由于这个简单的原因,这样做可以简化对引用框架的推理,一个人试图用一个monad(比如一个解析器)来驯服,而不会让一个人的想法纠缠在一起,例如,lambda演算.