一流函数和匿名函数有什么不同?

时间:2014-01-07 21:10:52

标签: programming-languages anonymous-function lambda first-class-functions

我看到了两个概念

看来这两个概念是一样的吗? (拉姆达)

我很困惑?

2 个答案:

答案 0 :(得分:3)

第一类函数是一个具体的函数 - 即它可以作为语言的一部分进行操作,可以传递给其他函数,作为变量的值。

匿名函数只是一个没有名称的函数(或者如果函数和变量占用不同的名称空间,则没有“函数”名称)。

设计一种具有匿名,非一流功能的语言会非常困难,但这两个概念是完全不同的,至少你有点可以。同样,你肯定可以拥有一流的函数语言,但没有匿名函数。这些语言很少见,因为这种设计没什么意义。

答案 1 :(得分:0)

Marcin有正确的答案。举一些例子:C和C#1.0都有一流的功能,但没有匿名功能。在这两种情况下,您只能显式声明命名函数,但是一旦有了,就可以获得对它们的引用并将它们存储在变量中。