Language agnostic 什么是Lambda?

Language agnostic 什么是Lambda?,language-agnostic,lambda,computer-science,terminology,Language Agnostic,Lambda,Computer Science,Terminology,有人能很好地描述一下什么是Lambda吗?我们为他们贴上了标签,他们是关于C#question的秘密,但我还没有找到一个好的定义和解释,来解释他们到底是什么。摘自维基百科: 在Lisp和Python等编程语言中,lambda是一个用于表示匿名函数或闭包的运算符,遵循lambda演算的用法。它只是一个内联声明的匿名函数,通常在不想编写完整函数时分配给委托 在lisp/scheme等语言中,它们通常作为函数参数自由传递,但C#中的习惯用法通常发现Lambda仅用于函数的延迟求值,如linq,或用于使

有人能很好地描述一下什么是Lambda吗?我们为他们贴上了标签,他们是关于C#question的秘密,但我还没有找到一个好的定义和解释,来解释他们到底是什么。

摘自维基百科:


在Lisp和Python等编程语言中,lambda是一个用于表示匿名函数或闭包的运算符,遵循lambda演算的用法。

它只是一个内联声明的匿名函数,通常在不想编写完整函数时分配给委托

在lisp/scheme等语言中,它们通常作为函数参数自由传递,但C#中的习惯用法通常发现Lambda仅用于函数的延迟求值,如linq,或用于使事件处理代码更简洁。

“Lambda”指的是或特定的Lambda表达式。Lambda演算基本上是逻辑和数学的一个分支,它处理函数,是数学的基础


~William Riley Land

也称闭包或匿名函数。。
我找到了最好的描述。基本上,内联代码块可以作为参数传递给函数

编程中实际上没有“lambda”这样的东西。这取决于语言等

简言之,“具有lambdas”的语言通常将该术语用于匿名函数,或者在某些情况下用于闭包。同样,在Ruby中:

f = lambda { return "this is a function with no name" }
puts f.call

闭包、lambdas和匿名函数不一定是一回事

匿名函数是任何没有(或至少不需要)自己名称的函数

闭包是一个函数,它可以访问声明时在其词法范围内的变量,即使这些变量已超出范围。匿名函数不一定非得是闭包,但它们在大多数语言中都是闭包,当它们不是闭包时就变得不那么有用了


lambda是。。并不像计算机科学那样定义得很好。许多语言甚至不使用这个术语;相反,他们只会称它们为闭包或anon函数,或者发明自己的术语。在LISP中,lambda只是一个匿名函数。在Python中,lambda是一个匿名函数,专门限于一个表达式;还有,您需要一个命名函数。lambda是两种语言中的闭包。

对于前面的回答:
-匿名函数最重要的不是它们不需要名称。
-闭包是一个独立的概念。
-维基百科上一篇巨大的文章并没有让这一点变得更清楚

我的答案分为三部分:
1.lambda是一个函数,也是一个表达式。这是最重要的事情。
2.许多实现所谓“lambdas”的语言都添加了一些语法糖,以使编写这些短函数更容易、更快,但这不是必需的。
3.有些语言可能要求lambda没有副作用。这将是一个更纯粹的lambda在功能意义上

当函数是一个表达式时,它就是语言中的“一等公民”。我可以用它做所有重要的事情:

x = lambda(){ return "Hello World"; }

doit( 1, 2, lambda(a,b){ return a > b; }, 3 )

x = (lambda(a){ return a+1; }) + 5  // type error, not syntax error

(lambda(a,b){ print(a); log(b); })( 1, 2 )  // () is valid operator here

我猜您的意思是这样的:在Lisp和Python等编程语言中,lambda是一个用于表示匿名函数或闭包的运算符,遵循lambda演算的用法。我已经浏览了这篇文章,但没有看到。这个词可能是指lambda calculation Wow,我对这个问题投了不止一票。我已经看到很多技术上的答案都陷入术语的泥沼,但这一个是简洁的,并且立即说明了问题。+1表示没有使用术语“close-over”来定义闭包,好像它使闭包更加清晰。一个由代码结构(即词汇)定义的变量(即范围)可以存在的区域。例如,在大多数语言中,函数定义词法范围;在函数内部声明的任何变量在函数外部都是不可访问的。开始时如何?然后作为后续。amda表达式的可能复制品解释得很好。