CSI和CSC(Chicken Scheme)之间的区别

3
为什么函数compose在解释器csi中定义,而不是编译器csc中定义?我知道我可以很容易地自己定义它,但我只是想知道为什么存在这样的区别。
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接