0

背景

我正在使用方案鸡实施。最新版本 (4.9.0.1)。

我正在尝试在一个名为arithmetic.scm.

但是对于复数,因为我还为矩形和极坐标表示设计了一个通用算术系统,所以我决定在名为complex.scm.

问题

因此,当我尝试将 加载complex.scm到文件arithmetic.scm中时,我发现两个文件中的某些函数具有相同的名称,因此我想使用 lambda 将前者包装到子环境中,并使用属性列表从那里注册运算符。但是,该load命令只能将脚本加载到全局环境中,而不管它是在哪里编写的。我想知道,除了重命名函数或将所有代码复制complex.scm到 lambda 函数中之外,我还有什么其他选择。非常感谢!

4

1 回答 1

0

正如 Chris Jester-Young 所指出的那样,您确实应该在这种情况下使用模块系统。

然而,你见过数字彩蛋吗?它添加了完整的数字塔支持(包括有理数、任意大整数和复数)。目前这是一个可以单独安装的扩展,但它(暂时)计划包含在下一个主要版本(CHICKEN 5)中。

全面披露:我是数字蛋的当前维护者。

于 2014-12-03T15:54:28.460 回答