lambda是一种高阶函数吗?

lambda是一种高阶函数吗?,lambda,higher-order-functions,Lambda,Higher Order Functions,我在一个招聘启事上看到这个问题,它问什么是lambda函数,它与高阶函数的关系是什么。我已经知道如何使用lambda函数,但我不太自信地解释它,所以我在谷歌上搜索了一下,发现了这个:还有这个 HOF的定义是,至少应该取一个或多个函数,或者返回一个函数,它符合lambda的定义,所以我的问题是。。lambda是HOF的一种吗 或者任何能进一步解释它们之间关系的人?Lambda语法使高阶函数的实现更容易。例如,currying是一个高阶函数,通过lambda语法变得更容易 为了理解高阶函数,您可能需

我在一个招聘启事上看到这个问题,它问什么是lambda函数,它与高阶函数的关系是什么。我已经知道如何使用lambda函数,但我不太自信地解释它,所以我在谷歌上搜索了一下,发现了这个:还有这个

HOF的定义是,至少应该取一个或多个函数,或者返回一个函数,它符合lambda的定义,所以我的问题是。。lambda是HOF的一种吗


或者任何能进一步解释它们之间关系的人?

Lambda语法使高阶函数的实现更容易。例如,currying是一个高阶函数,通过lambda语法变得更容易

为了理解高阶函数,您可能需要研究lambda运算符

HOF的定义是,至少应该获取一个或多个函数,或者返回一个函数,这与lambda的定义是一致的

是吗<代码>(lambda(x)(x+1))(或
x=>x+1
\x->x+1
fun x->x+1
,取决于您的语言语法)是lambda。但是,它既不接受函数作为参数(接受int),也不返回int

所以不,lambda不一定是高阶函数,尽管它们可以是


lambda是一个匿名函数。因此,它是一种功能。但是,如果它接受或返回一个函数,那么它只是一个高阶函数,而大多数lambda不这样做。然而,lambda最常用作更高函数的参数(即,如果您使用
Where(s=>s.Length>5)
其中
是一个高阶函数,
s=>s.Length>5
是一个(一阶)lambda),因此它们是相关的。

这取决于您所说的“lambda”是什么意思

你链接到的维基百科页面的以下段落从类型理论的角度清楚地描述了这种关系

在非类型化的lambda演算中,所有函数都是高阶的;在类型化的lambda演算中,高阶函数通常是那些类型包含多个箭头的函数。在函数式编程中,返回其他函数的高阶函数称为curry

换句话说,在类型论术语中,函数(lambda)在非类型lambda演算中总是高阶的,在类型lambda演算中可能是高阶的。。。取决于其类型签名

如果我们谈论的是由一些编程语言实现的“lambda”构造,那么它取决于1)您所谈论的实际语言,以及2)特定语言中的特定用法


在lambda是匿名第一类函数的语言中,您希望它们能够表达高阶函数。但高阶函数是将其他函数作为参数和/或作为结果返回的函数。并非所有在应用程序中使用“lambda”都能做到这一点。

Ah。我应该清楚这方面的语言是Python。@Marconi-我的答案仍然适用。谢谢,我想我现在明白了。