Lambda表达式与程序式函数

时间:2014-10-29 19:27:49

标签: function lambda functional-programming procedural

我只是不了解lambda表达的力量。

的Python

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

方案

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

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

1 个答案:

答案 0 :(得分:0)

直观地,当我们比较两个工具时,我们会考虑其中一个工具实现哪个工具而不是另一个工具,以便我们能够理解一个工具的优势,但在这个特殊情况下,工具(程序和功能)都是相当于你可以用它们实现的目标,即你可以执行什么计算。

上述情况是让人们在开始学习功能编程时感到困惑的原因,因为他们开始比较在另一个无法完成的工作中可以实现的目标。

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

基于上述观察,你可以说 - lambda演算和程序方法有不同的原语,他们有不同的方法来组成/附加这些原语来执行所需的计算。