我仍在学习函数式编程(使用f#),最近我开始阅读有关计算表达式的文章。我仍然不完全理解这个概念,而让我不确定阅读所有有关monad的文章(其中大部分是基于Haskell撰写的)时,我不确定的是计算表达式和monad之间的关系。
写下所有内容后,这是我的问题(实际上是两个问题):
每个F#计算表达式都是monad吗?每个单子都能用F#计算表达式表示吗?
我已经读过Tomas Petricek的这篇文章,如果我对它的理解很好,它指出计算表达式比monad还要多,但是我不确定我是否正确解释了这一点。
@Raphael请问删除lang标签的原因是什么?
—
2014年
由于我们关心概念,因此我们在这里尽量使大多数事情与语言无关。我不知道删除F#对问题有什么作用(我认为如果重要的是F#,那么这里的问题就不重要了,但这是一个临界情况),所以我只删除了F#标签。经验法则:F#不是CS概念,因此它不需要标签。(是的,我知道其他PL标签,我也不喜欢它们。对于某些问题,社区决定对这些PL标签进行担保。)
—
Raphael
@Raphael我相信这个问题确实是一个边缘情况。有人决定将其迁移到这里,但似乎在这里也有点偏离主题。自此以来,问题本身就是一台计算机,但同时答案和问题都与f#有关。我了解您的经验法则,感谢您的澄清。
—
2014年