我正在学习计划。我知道如何同时使用 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