1

我只是不明白 lambda 表达式的力量。

Python

def sum(x, y):
    return x + y

方案

(lambda (x y) (+ x y))

除了没有给出正式名称的 lambda 表达式之外,为什么一个与另一个如此不同?看起来你可以用任何一种方法做同样的事情,那为什么我的老师在 lambda 演算上这么高?

4

1 回答 1

1

直观地,当我们比较两种工具时,我们会考虑其中一种工具能实现哪些另一种不能,这样我们就可以了解一种工具相对于另一种工具的优势,但在这种特殊情况下,两种工具(程序性和功能性)在术语上是等效的你可以用它们实现什么,即你可以执行什么计算。

上述情况是人们在开始学习函数式编程时感到困惑的原因,因为他们开始比较在一种方法中可以实现的功能和在另一种方法中无法实现的功能。

现在,如果您面临拥有 2 台工具的情况,假设有 2 台洗衣机(假设一台来自 A 星球,另一台来自 B 星球),并且它们使用不同的洗涤剂达到相同的洗涤质量,您将如何比较它们并找出差异?唯一可能的区分方法是它们如何达到结果,即拆开洗衣机并开始查看它们的内部以弄清楚它们是如何达到结果的,这将导致您得出结论“两次洗涤之间的区别机器是原始组件(螺母,螺栓,电路等)以及它们如何组合/连接在一起以实现结果在两种机器中都是不同的”。

基于上述观察,您可以说 - lambda 演算和过程方法具有不同的基元,并且它们具有不同的方法来组合/附加这些基元以执行所需的计算。

于 2014-10-30T04:14:53.053 回答