这是我previous question的后续跟进。不幸的是,似乎鸡计划默认情况下不支持复杂数字,而是提供可以安装的numbers
蛋。
我已经通过chicken-install numbers
安装了这个鸡蛋,我可以在解释的环境中加载它。我可以通过致电use
来做到这一点;可以在REPL中手动操作,也可以通过.scm
将csi
文件作为脚本运行。
例如,此脚本完美运行:
(use numbers)
(begin
(display 3+3i)
(newline)
)
运行时:
csi -s main.scm
但是当我用csc
编译这个完全相同的片段时(即使没有任何附加标志),我得到了相同的运行时错误,如果我没有加载它(例如一个未绑定的变量)。好像在编译环境中use
没有削减芥末。
另外需要注意的是,根据文档,我尝试了其他导入功能,例如require-extension
,require-library
等,但没有任何区别。另一个是,如果我将模块的名称更改为numbers
以外的其他名称,比如numberss
,则无法编译,抱怨它无法加载扩展名,所以显然它至少是检测到numbers
库已安装。
有没有人可以解释一下,最好通过一个简短的工作实例来说明如何在编译环境中使用鸡蛋?提前致谢! :)
答案 0 :(得分:5)
根据Peter Bex在mailing list提供的有用信息,大多数鸡蛋都可以开箱即用,您只需要use
。
但是,某些鸡蛋会为基本读者提供扩展,编译器需要被告知它们。您可以使用-X
标志执行此操作。正如documentation所说,numbers
是其中一个包。
使用以下代码编译您的代码段:
csc -X numbers-syntax main.scm
工作得很好。
我希望这有帮助! :)