monad和闭包有什么区别?

阅读两者之间的定义我有点困惑。 它们是否可以在定义上相交? 还是我完全失去了? 谢谢。


正如这个词常常被使用的那样,闭包只不过是功能(或者代码块,如果你喜欢的话),你可以像处理一些数据一样处理并传递给其他功能等等(“闭合”位是无论你身在何处最终调用它,它的行为就像它在你最初定义的地方叫它)。 monad(大体上)更像是一个函数可以按顺序链接在一起的上下文,并控制数据如何从一个函数传递到下一个函数。


他们是完全不同的,虽然Monad经常使用闭包来捕获逻辑。

就个人而言,我会尝试确定关闭的定义(本质上是一个逻辑,它也捕获其环境,即局部变量等),然后担心单子。 他们可以晚点来:)

有关于堆栈溢出关闭的各种问题 - 最好的帮助你将取决于你在哪个平台上工作。 例如,有:

  • 什么是.NET中的闭包?
  • 函数指针,闭包和lambda
  • 就我个人而言,我只是刚刚开始“单打”单子(感谢我正在帮助的那本书)。 有一天,我会围绕写一篇关于他们的文章,当我觉得我对他们了解的很好:)


    “闭包”是一个对象,包含1)一个函数,以及2)它构造的自由变量的值。

    “monad”是一类可以以某种方式构成的函数,即通过使用关联的绑定并返回高阶函数运算符来产生其他函数。

    链接地址: http://www.djcxy.com/p/51089.html

    上一篇: What is the difference between a monad and a closure?

    下一篇: How does deferred LINQ query execution actually work?