Scheme csi和csc(鸡肉计划)的区别

Scheme csi和csc(鸡肉计划)的区别,scheme,chicken-scheme,Scheme,Chicken Scheme,为什么函数compose是在解释器csi中定义的,而不是在编译器csc中定义的?我知道我自己可以很容易地定义它,但我只是想知道为什么会有这样的差异。编写过程来自单元数据结构(请参阅或)。您可以通过键入(使用数据结构)来加载它 至于为什么它在csi中可用,而在csc中默认不可用,这是一个有点毛茸茸的实现细节;csi解释器只需自己加载几个模块即可提供解释器环境。由于它的实现方式,csi加载的所有内容在顶层也变得可用。在CHICKEN 5中,这种情况有了很大的改善,解释器从一个干净的顶级环境开始 因此

为什么函数
compose
是在解释器
csi
中定义的,而不是在编译器
csc
中定义的?我知道我自己可以很容易地定义它,但我只是想知道为什么会有这样的差异。

编写
过程来自单元
数据结构(请参阅或)。您可以通过键入
(使用数据结构)
来加载它

至于为什么它在
csi
中可用,而在
csc
中默认不可用,这是一个有点毛茸茸的实现细节;
csi
解释器只需自己加载几个模块即可提供解释器环境。由于它的实现方式,csi加载的所有内容在顶层也变得可用。在CHICKEN 5中,这种情况有了很大的改善,解释器从一个干净的顶级环境开始

因此,在实践中,这意味着您应该始终明确地
(使用)
程序所需的所有模块,以确保它在编译模式和解释模式下工作。您也可以将整个程序包装在一个环境中,而不是将程序放在顶级环境中。模块总是有一个完全干净的环境,所以编译和解释时不会有什么区别