我正在使用方案鸡实施。最新版本(4.9.0.1)。
我正在尝试在名为arithmetic.scm
的文件中实现关于有理数,复数和修复精度数的通用算术系统。
但对于复数,我也为矩形和极坐标表示设计了一个通用算术系统,我决定在名为complex.scm
的文件中编写复数的代码。
因此,当我尝试将complex.scm
加载到文件arithmetic.scm
中时,我发现某些函数在两个文件中都具有相同的名称,所以我想使用lambda将前者包装成一个子环境并使用属性列表从那里注册运算符。但是,load
命令只能将脚本加载到全局环境中,无论它在何处写入。我想知道,除了重命名函数或将所有代码从complex.scm
复制到lambda函数之外,我还有其他选择。非常感谢!
答案 0 :(得分:0)
你应该确实使用模块系统来解决这种情况,正如Chris Jester-Young所说。
但是,你见过numbers egg吗?它增加了完整的数字塔支持(包括有理数,任意大整数和复数)。这是目前可以单独安装的扩展,但它(暂定)将被纳入下一个主要版本(CHICKEN 5)。
完全披露:我是数字蛋的当前维护者。