【发布时间】:2012-03-24 09:22:15
【问题描述】:
lambda 表达式(在某种程度上,匿名函数)是闭包吗?
我对闭包的理解是,它们是被视为对象的函数,这似乎是匿名函数和 Lambda 表达式所做工作的准确表示。
将它们称为闭包是否正确?我知道闭包的出现(或流行)是由于 lisp 方言,但它也是一个通用的编程术语吗?
感谢您提供的任何澄清!
【问题讨论】:
-
注意它们被称为闭包。 “Clojure”是一种语言(因此是我的编辑)。
-
啊 - 这绝对消除了这种困惑!谢谢
-
闭包是 lambda 表达式的一个方面。 Lambda 不一定支持闭包。有些语言以不同的方式实现它。例如,Java 与 C# 的不同之处在于前者不允许修改函数内的封闭变量。也就是说,我认为这个问题是关于一般理解的,因此重复 What is the difference between a 'closure' and a 'lambda'?