Скажем, у меня есть библиотека Foo в foo.scm
так:Создать библиотеку, доступную из ИБК
(module foo (bar)
(import scheme)
(define (bar arg)
(+ 5 arg)))
И у меня есть программа program.scm
:
(use foo)
(display (bar 2))
Теперь я компилирую Foo и генерировать импортировать библиотеку с помощью csc -J -library foo.scm
, а затем скомпилировать программу с помощью csc program.scm
. Запуск программы отображает «7», как и ожидалось, и все денди. Тем не менее, я хочу загрузить программу в интерактивном режиме в интерпретаторе (csi), но теперь по какой-либо причине каждый вызов функции в foo должен иметь префикс foo#
, то есть в интерпретаторе (foo#bar 2)
работает, но (bar 2)
даже не работает при использовании в исходном файле.
Почему это? Мало того, что это немного раздражает, я также опасаюсь, что у меня может возникнуть непонимание того, как модульная система работает в Chicken, поэтому любое разъяснение было бы очень оценено.