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