gpt4 book ai didi

scheme - 就 SICP 的评估环境模型而言,词法与动态范围

转载 作者:行者123 更新时间:2023-12-04 02:21:28 24 4
gpt4 key购买 nike

Section 3.2.2 SICP 执行下面这段代码

(define (square x)
(* x x))
(define (sum-of-squares x y)
(+ (square x) (square y)))
(define (f a)
(sum-of-squares (+ a 1) (* a 2)))

(f 5)

this diagram 解释.

每次应用函数时,都会创建一个新框架(由 E1E4 标记),它表示符号和值之间的一组绑定(bind)。当符号未绑定(bind)在框架中时,将查询该框架的封闭环境以获取该特定符号的绑定(bind)。

该图的有趣之处在于所有由 E 标记的帧。包含在全局环境中。文中解释说这是因为函数是在全局环境中定义的,但没有详细说明这个问题:

Notice that each frame created by square points to the global environment, since this is the environment indicated by the square procedure object.



相反,如果框架包含在调用函数的环境中,例如 E3包含在 E2 中它又包含在 E1 中,这将是动态范围语言如何工作的有效模型吗?此外,图中的框架是否具有相同的“父”环境,因为 Scheme 是词法范围的?

最佳答案

这两个问题的答案都是是的 . SICP 的那一章是在解释词法范围而没有实际使用该术语。按照您的描述更改评估机制将创建一个动态范围的模型。

关于scheme - 就 SICP 的评估环境模型而言,词法与动态范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763979/

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