首页 文章

如何在编译环境中使用鸡蛋?

提问于
浏览
4

这是我的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-extensionrequire-library 等,但没有一个有所作为 . 另一个是,如果我将模块的名称更改为 numbers 以外的其他名称,比如 numberss ,则无法编译,抱怨它无法加载扩展名,因此显然它至少检测到 numbers 库已安装 .

有谁能解释一下,最好通过一个简短的工作实例来说明如何在编译环境中使用鸡蛋?提前致谢! :)

1 回答

  • 5

    根据Peter Bex在mailing list上提供的有用信息,大多数鸡蛋都可以开箱即用,你只需要它们就可以了 .

    但是,某些鸡蛋会为基本读者提供扩展,编译器需要被告知它们 . 您可以使用 -X 标志执行此操作 . 正如documentation所说, numbers 就是其中一个包 .

    使用以下代码编译您的代码段:

    csc -X numbers-syntax main.scm
    

    工作得很好 .

    我希望这有帮助! :)

相关问题