Фон
Я использую реализацию куриного цыплят. Последняя версия (4.9.0.1).Схема реализации курицы, сценарий субэкологического сценария loading
Я пытаюсь реализовать общую арифметическую систему на рациональных, сложных и фиксированных точках в файле с именем arithmetic.scm
.
Но для комплексных чисел, поскольку я также разработал общую арифметическую систему как для прямоугольного, так и для полярного представления, я решил написать код для комплексного числа в файле с именем complex.scm
.
Проблема
Так что, когда я пытаюсь загрузить complex.scm
в файл arithmetic.scm
, я обнаружил, что некоторые функции имеют одинаковые имена в обоих файлах, так что я хочу использовать лямбда, чтобы обернуть бывший в суб среде и зарегистрируйте операторы оттуда, используя список свойств. Однако команда load
может загружать сценарий только в глобальную среду независимо от того, где она написана. Интересно, кроме переименования функций или копирования всего кода с complex.scm
в функцию лямбда, какие у меня есть другие параметры. Большое спасибо!
Любая достойная реализация схемы, включая Chicken, имеет модульную систему. Модульная система цыпленка зарегистрирована здесь: http://wiki.call-cc.org/man/4/Modules. Вместо того, чтобы загружать 'complex.scm', вы должны сделать модули' complex.scm' и 'arithmetic.scm', экспортировать все, что хотите, из' complex' и импортировать 'complex' внутри' arithmetic'. Вы можете переименовать идентификаторы при импорте. –