4

这是对我之前的问题的跟进。不幸的是,默认情况下,Chicken Scheme 似乎不支持复数,而是提供了一个numbers可以安装的鸡蛋。

我已经通过 安装了这个 egg,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库已安装。

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

4

1 回答 1

5

根据 Peter Bex 在邮件列表中提供的有用信息,大多数鸡蛋都可以开箱即用,您只需要use它们即可。

但是,某些鸡蛋为基本阅读器提供了扩展,需要告知编译器。您可以使用-X标志来执行此操作。正如文档所说,numbers是这些软件包之一。

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

csc -X numbers-syntax main.scm

完美地工作。

我希望这有帮助!:)

于 2012-11-24T01:21:48.247 回答