Lisp 在SICP 3.2评估的环境模型中,环境最初是否与其第一个框架相同?

Lisp 在SICP 3.2评估的环境模型中,环境最初是否与其第一个框架相同?,lisp,scheme,sicp,Lisp,Scheme,Sicp,在本书中,“环境”被定义为“一系列框架”。但就我所见,本书没有进一步讨论环境和框架之间的区别。此外,我怀疑环境的绘图会将它们与框架混为一谈,因为书籍的绘图很小,是二维的,并且在没有另一幅完整的绘图之前,不容易显示时间的演变 那么,将创造时的环境视为与第一个框架相同是正确的吗?然后,当环境中发生任何更改(现有绑定已更改,新绑定已创建)时,环境会向其帧序列添加一个新帧?如果这种理解不正确,那么环境和框架之间的区别到底是什么 提前感谢您的帮助 我认为初始环境是长度为1的序列,只有第一帧。帧序列是指向全

在本书中,“环境”被定义为“一系列框架”。但就我所见,本书没有进一步讨论环境和框架之间的区别。此外,我怀疑环境的绘图会将它们与框架混为一谈,因为书籍的绘图很小,是二维的,并且在没有另一幅完整的绘图之前,不容易显示时间的演变

那么,将创造时的环境视为与第一个框架相同是正确的吗?然后,当环境中发生任何更改(现有绑定已更改,新绑定已创建)时,环境会向其帧序列添加一个新帧?如果这种理解不正确,那么环境和框架之间的区别到底是什么


提前感谢您的帮助

我认为初始环境是长度为1的序列,只有第一帧。

帧序列是指向全局环境的链接列表(帧)。因此,当创建环境时(例如,在过程绑定的上下文中),“环境”是指向框架的指针……从术语上讲,框架指向封闭环境(如果是全局环境,则为null)

所以。。。一个限定的“是”…这是第一个框架,因为环境的其余部分可以从第一个框架访问

这有用吗

诚恳地,
Dak

很多时候,人们交替使用“环境”和“框架”。就我个人而言,我一直试图保持它们的不同。我使用frame来表示一个特定的堆栈和一个作为所有帧的环境

这很有帮助,多亏了-所以最终,环境是一个指向帧序列的指针,而最初,该序列只有一个帧。但全球环境又如何呢?也许这在书中更进一步,但是如果全局env也只是一个指向帧序列的指针,那么指向帧的全局序列的“全局过程”在哪里呢?这就像第一个导致困境的原因……:)