gpt4 book ai didi

lisp - DrRacket 解释器是否使用基于 SICP 练习 1.5 的正常顺序评估?

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:12 27 4
gpt4 key购买 nike

必须根据以下值做出决定:

(test 0 (p))

其中测试定义为:

(define (test x y)
(if (= x 0)
0
y))

并且 p 被定义为:

(define (p) (p))

当我评估 (test 0 (p)) 时,解释器进入无限循环,表明它正在评估 p。这显示了正常顺序求值,因为操作数是在被替换为参数之前求值的。 SICP 说 LISP 使用应用顺序评估。

最佳答案

This shows normal-order evaluation, because the operands are evaluated before being substituted for parameters

其实你理解错了。适用顺序是首先评估操作数的时间。正常顺序是将参数代入未计算的表达式。

所以 racket 使用应用顺序,因为正如你所说,首先评估参数(除非你使用“Lazy Racket”,在这种情况下它使用按需调用也称为惰性评估,这类似于正常顺序,除了每个参数都被评估最多一次)。

关于lisp - DrRacket 解释器是否使用基于 SICP 练习 1.5 的正常顺序评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422390/

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