阅读两者之间的定义我有点困惑。它们实际上可以在定义上相交吗?或者我完全迷路了?谢谢。

有帮助吗?

解决方案

闭包,正如这个词经常被使用的那样,只是函数(或者代码块,如果你喜欢的话),你可以将其视为一段数据并传递给其他函数等。(“关闭”位是指无论您最终在何处调用它,它的行为都与您在最初定义的位置调用它一样)。monad(大致)更像是一个上下文,其中函数可以按顺序链接在一起,并控制数据如何从一个函数传递到下一个函数。

其他提示

它们是完全不同的,尽管单子经常会 使用 闭包来捕获逻辑。

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

Stack Overflow 上有各种关于闭包的问题 - 最能帮助您的问题将取决于您正在使用的平台。例如,有:

就我个人而言,我才刚刚开始“理解”单子(感谢我正在帮助编写的书)。有一天,当我觉得我足够理解它们时,我会抽出时间写一篇关于它们的文章:)

一个“闭合”是包含1)的功能的对象,和2),其中它的构造其自由变量的值。

A“单子”是一类能够以一定的方式,通过使用相关联的组成,即函数的结合返回高阶函数运算符,以产生其它功能。

我觉得单子有点比关闭更复杂,因为闭包是记得的定义和单子点东西的代码只是块的“扭曲”的常用函数合成操作的构造。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top