2014-11-19 5 views
0

Фон

Я использую реализацию куриного цыплят. Последняя версия (4.9.0.1).Схема реализации курицы, сценарий субэкологического сценария loading

Я пытаюсь реализовать общую арифметическую систему на рациональных, сложных и фиксированных точках в файле с именем arithmetic.scm.

Но для комплексных чисел, поскольку я также разработал общую арифметическую систему как для прямоугольного, так и для полярного представления, я решил написать код для комплексного числа в файле с именем complex.scm.

Проблема

Так что, когда я пытаюсь загрузить complex.scm в файл arithmetic.scm, я обнаружил, что некоторые функции имеют одинаковые имена в обоих файлах, так что я хочу использовать лямбда, чтобы обернуть бывший в суб среде и зарегистрируйте операторы оттуда, используя список свойств. Однако команда load может загружать сценарий только в глобальную среду независимо от того, где она написана. Интересно, кроме переименования функций или копирования всего кода с complex.scm в функцию лямбда, какие у меня есть другие параметры. Большое спасибо!

+1

Любая достойная реализация схемы, включая Chicken, имеет модульную систему. Модульная система цыпленка зарегистрирована здесь: http://wiki.call-cc.org/man/4/Modules. Вместо того, чтобы загружать 'complex.scm', вы должны сделать модули' complex.scm' и 'arithmetic.scm', экспортировать все, что хотите, из' complex' и импортировать 'complex' внутри' arithmetic'. Вы можете переименовать идентификаторы при импорте. –

ответ

0

Вы должны использовать модульную систему для таких ситуаций, как указал Крис Шестер-Янг.

Однако, вы видели numbers egg? Он добавляет полную поддержку числовой башни (включая рациональные числа, сколь угодно большие целые числа и комплексные числа). В настоящее время это расширение, которое может быть установлено отдельно, но оно (предварительно) намечено для включения в следующую крупную версию (CHICKEN 5).

Полное раскрытие информации: Я являюсь нынешним хранителем чисел.

 Смежные вопросы

  • Нет связанных вопросов^_^