背景
我正在使用方案鸡实现。最新版本(4.9.0.1)。
我正在尝试在一个名为arithmetic.scm
的文件中实现一个关于有理数、复数和固定精度数字的通用算术系统。
但是对于复数,因为我还设计了一个用于矩形和极轴表示的通用算术系统,所以我决定将复数的代码写在名为complex.scm
的文件中。
问题
因此,当我尝试将complex.scm
加载到文件arithmetic.scm
中时,我发现一些函数在两个文件中具有相同的名称,因此我想使用一个lambda将前者包装到一个子环境中,并使用属性列表从那里注册操作符。但是,无论脚本写在哪里,load
命令都只能将脚本加载到全局环境中。我想知道,除了重命名函数或将complex.scm
中的所有代码复制到一个lambda函数中之外,我还有什么其他选择。非常感谢!
发布于 2014-12-03 23:54:28
你确实应该在这种情况下使用模块系统,就像Chris Jester-Young指出的那样。
但是,你见过numbers egg吗?它添加了完整的数字塔支持(包括有理数、任意大整数和复数)。目前这是一个可以单独安装的扩展,但它(暂定)将包含在下一个主要版本(鸡5)中。
完全公开:我现在是numbers鸡蛋的维护者。
https://stackoverflow.com/questions/27022301
复制相似问题