gpt4 book ai didi

lambda - 使用 let 重写表达式

转载 作者:行者123 更新时间:2023-12-02 05:03:31 25 4
gpt4 key购买 nike

我一直在教授方案语言,在我的教科书中我想到了下面的表达方式。我的问题是为什么它要对数字“10”进行评估?有人可以向我解释一下吗?意味着创建了哪些本地环境以及为符号创建了哪些绑定(bind)。我还知道每个 lambda 表达式都可以使用 let 重写。知道该怎么做吗?我将不胜感激任何帮助。

(let ((x 10)) 
(define y (lambda (x) x))
(define x 5)
(+ x (y x)))

最佳答案

您的代码采用更易读的形式:

(let ((x 10))
(define y (lambda (x) x))
(define x 5)
(+ x (y x)))

您可以应用替换方法:

(+ x (y x)) ; ==>
(+ 5 (y 5)) ; ==>
(+ 5 ((lambda (x) x) 5)) ; ==>
(+ 5 5) ; ==>
10

你理解错了。每个 let 都可以重写为立即调用的 lambda:

(let ((a aexpr) (b bexpr))
body ...)

; ==

((lambda (a b) body ...) aexpr bexpr)

关于lambda - 使用 let 重写表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54372187/

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