为什么函数
compose
在解释器csi
中定义,而不是编译器csc
中定义?我知道我可以很容易地自己定义它,但我只是想知道为什么存在这样的区别。compose
在解释器csi
中定义,而不是编译器csc
中定义?我知道我可以很容易地自己定义它,但我只是想知道为什么存在这样的区别。compose
过程来自于data-structures
单元(详见手册或API文档)。您可以通过键入(use data-structures)
来加载它。csc
中默认情况下不可用, 而在csi
中可用是一个比较棘手的实现细节; csi
解释器只需要自己加载一些模块以提供一个解释器环境。由于实现方式的原因,csi
加载的所有内容也都变成了顶层变量。在CHICKEN 5中,这种情况有了很大的改善,解释器从干净的顶层环境开始运行。(use)
其程序所需的所有模块,以确保它在编译模式和解释模式下都能正常工作。您还可以将整个程序包装在一个模块中,而不是将其放置在顶层环境中。模块始终具有完全干净的环境,因此在编译和解释时没有任何区别。