gpt4 book ai didi

lambda - 计划中的 lambda 有什么意义?

转载 作者:行者123 更新时间:2023-12-03 10:19:42 24 4
gpt4 key购买 nike

我正在学习计划。我知道如何同时使用 lambda 和 let 表达式。

但是,我正在努力弄清楚使用 lambda 的意义何在。你不能用 let 做所有你可以用 lambda 做的事情吗?

看一个 lambda 表达式比 let 更好的选择的例子会特别有帮助。

另一件事 - 是否也存在 let 比 lambda 更有用的情况?如果是这样,这样的例子也很好。

编辑:我也对对比定义和 lambda 感兴趣,因为它们似乎执行类似的任务。

更新:

感谢大家的帮助。阅读您的答案后,我对 lambda/let/define 进行了更多研究,现在更好地理解了它。

我遇到了一个很酷的 lambda 用法的一个很好的例子——从过程中返回匿名函数。例如,程序 operateTwice下面返回一个匿名函数,该函数基于传入过程的参数:

(define operateTwice
(lambda (op1 op2)
(lambda (x y)
(op2 (op1 x y) y))))

((operateTwice * +) 2 3) ;equivalent to: (+ (* 2 3) 3), or in standard notation 2*3+3

输出:
9

最佳答案

一个 letlambda .

例如。

(let ((x 1))
body)

可以翻译成
((lambda (x) body) 1)

此外,在 Scheme 中,所有的控制和环境结构都可以用 lambda 表达式和 lambda 的应用来表示。

所以, lambdalet 更强大并构成了 Scheme 中许多有趣的构造的基础。

关于 definelambda , 顶级 define添加到顶级环境的绑定(bind)。

当你写
(define (f x)
body)

你真的在说
(define f (lambda (x) body))

嵌套定义被翻译成 letrec ,也可以使用 lambdas 重写。

因此,同样,许多 Scheme 构造都可以使用 lambda 转换成某种东西。 ,因此你理解 lambda 真的很有值(value)好。

关于lambda - 计划中的 lambda 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com