什么是“ lambda”代码?


17

我最近听说有人谈论代码是“ lambda”。我以前从未听说过这句话。这是什么意思?


它做了。几次。我什至尝试了几次-可惜没有成功。也许您会有更多的运气?感谢那些作出回应的人。
奥利弗·莫兰

10
@Oliver,在此处提出问题的一部分还在于显示您做了什么回答该问题,以使人们不会尝试与您所做的相同的事情而陷入困境。通过指定您在Wikipedia或Google链接中的哪个位置感到困惑,可以确保您的问题得到更好的回答,因为从一般意义上讲,答案可能不是您想要的,因为它只是引用您以前没有得到的内容。只需考虑尝试别人发布的内容,然后看看会发生什么。您可能会对结果感到惊讶。
JB King

7
我觉得这可以说唱-“我的代码如此lambda”。但是我不能保证它没有任何节奏。:-)
Paul Nathan

1
@JB King + JB King-感谢您的有礼貌。概括地说,你们俩都说得通。但是,根据查询的不同,有时简短而开放的问题会更好地引出其他地方未找到的答复。我的问题恰恰引起了我所寻找的答案。我说出了它的意思。我希望以下答案对有相同问题的其他人有用。具有讽刺意味的是,我对一些问题感到失望的同时对答案感到满意。
奥利弗·莫兰

2
@Paul Nathan-您的代码如此之类,您显然从未计划过要按照任何标准进行工作;比打磨机还要粗糙!
glenatron 2011年

Answers:


20

Lambda表达式可以是抽象(有时称为匿名函数),应用程序或变量(大多数语言还向此列表添加常量)。Lambda术语不一定是函数,也不一定作为参数传递,尽管这是一种常见的做法。

C#中Lambda表达式的常见示例

例如:

List<int> items = new List<int>();
items.add(1);
items.add(2);
items.add(1);
items.add(3);

int CountofOnes = items.FindAll(item => item == 1).Count();

Console.Out.WriteLine(CountofOnes);

将输出:2

在这段代码中,我将lambda构造传递给FindAll.NET List对象的功能。

items.FindAll(item => item == 1)

此调用中的lambda执行一个简单的方程式,并返回一个布尔值,告诉FindAll该怎么做。


2
那不是真的。Lambda表达式可以是抽象(不一定是small),应用程序或变量(大多数语言也在此列表中添加常量)。Lambda术语不一定是函数,也不一定作为参数传递。
SK-logic

您是对的,为清楚起见,我将回答答案。
Timothy Groote

3
请给我一个不是函数的lambda表达式示例。
Ingo

1
@Ingo,这当然是lambda演算的术语。 en.wikipedia.org/wiki/Lambda_calculus#Lambda_terms
SK-logic

1
@ SK-logic我更喜欢不同的看法。像Haskell和C#之类的语言可以将函数绑定到let(rec)构造中或以“超级组合器”形式(即顶级函数绑定)的形式绑定到名称,我认为这与我所做的重大区别在此处使用原始lambda术语是不正确的。因为在LC中没有这样的事情(这就是为什么您需要Y组合器进行递归的原因)。Haskell中((\ xy-> x)a)和(const a)的结果是相同的,并且都是应用程序,但是我只将第一个术语称为“ lambda应用程序”。
Ingo


1

Lambda通常是指函数编程上下文中的函数表达式。

这是python中的lambda表达式:

lambda x: x + 1

表示一个将其参数x增加1 的函数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.