gpt4 book ai didi

lambda - Scheme中的正常顺序和应用顺序评估

转载 作者:行者123 更新时间:2023-12-01 02:55:35 27 4
gpt4 key购买 nike

对于网站上给出的第一个示例:View-Site ,我的理解是正常订单评估为 [6;1;1]并且应用顺序计算为 [6;2;2]
任何人都可以确认我的评估吗?

问候,
黑鬼

最佳答案

好的,让我们完成评估 (cons res v) 的步骤使用正常顺序评估:
v已定义为 (cons a (cons b ’())) ,所以我们有 cons res (cons a (cons b ’())) . res定义为 (foo ...) ,所以我们有

(cons (foo (begin (set! a (+ a 1)) a)
(begin (set! b (* b 2)) b))
(cons a (cons b ’())))

最后 foo x y定义为 (+ x y y) ,所以通过替换 (begin (set! a (+ a 1)) a)x(begin (set! b (* b 2)) b)y ,我们得到:
(cons (+ (begin (set! a (+ a 1)) a)
(begin (set! b (* b 2)) b)
(begin (set! b (* b 2)) b))
(cons a (cons b ’())))

所以现在让我们评估一下:为了得到 cons 的结果,我们首先需要评估它的第一个参数, (+ ...) .所以我们首先需要评估 + 的第一个参数这是 (begin (set! a (+ a 1)) a) .计算结果为 2,因此 a 的值现在是 2 并且是 + 的第一个参数也是 2。现在我们对第二个参数做同样的事情。这也计算为 2 并将 b 设置为 2。第三个参数是 (begin (set! b (* b 2)) b)再次,所以 b 的值现在是 4,第三个参数是 4。所以第一个参数 cons结果是 (+ 2 2 4) ,即 8 和 a 的值和 b是 2 和 4。

现在我们需要评估第二个参数, (cons a (cons b ’())) .所以由于 a的值和 b是 2 和 4,最终结果是 (8 2 4) .

关于lambda - Scheme中的正常顺序和应用顺序评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094699/

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