为什么函数是compose
在解释器中csi
而不是在编译器中定义的csc
?我知道我可以很容易地自己定义它,但我只是想知道为什么会有这样的差异。
问问题
230 次
1 回答
5
该compose
程序来自单元data-structures
(请参阅手册或API 文档)。您可以通过键入来加载它(use data-structures)
。
至于为什么它在默认情况下可用csi
而不是在csc
默认情况下不可用,这是一个繁琐的实现细节;解释器只需要自己csi
加载一些模块来提供解释器环境。由于它的实现方式,加载的所有内容csi
也都在顶层可用。在 CHICKEN 5 中,这种情况得到了很大改善,解释器从一个干净的顶层环境开始。
所以这在实践中意味着你应该始终明确地(use)
显示你的程序需要的所有模块,以确保它在编译模式和解释模式下工作。除了将您的程序置于顶层环境之外,您还可以将整个程序包装在一个模块中。模块总是有一个完全干净的环境,所以编译它和解释它时没有区别。
于 2015-08-29T12:19:14.693 回答