Как использовать модуль внутри модуля?

У меня есть этот простой модуль:

REBOL[
    Name: 'test1
    Type: 'module
    Exports: [foo]
]

foo: does [print "foo"]

и этот:

REBOL[
    Name: 'test2
    Type: 'module
    Exports: [bar]
]

import %test1.reb

foo

bar: does [foo]

Когда я пытаюсь сделать import %test2.reb, Я получил foo word is not bound to a context ошибка. После этой ошибки я могу позвонить foo с консоли, поэтому он был импортирован, но как-то невидим test2 модуль. Итак, как правильно использовать модуль внутри модуля?

2 ответа

Я не уверен, если это ошибка в IMPORT, тем не мение С использованием NEEDS заголовок должен работать:

Rebol [
    Name: 'test2
    Type: 'module
    Exports: [bar]
    Needs: [%test1.reb]
]

foo

bar: does [foo]

Вы можете задать слово для возврата импорта

REBOL[
    Name: 'test2
    Type: 'module
    Exports: [bar]
]

t1: import %test1.reb

t1/foo

bar: does [t1/foo]

РЕДАКТИРОВАТЬ:

Я пытался использовать 'do, и это сработало, но теперь я не могу воспроизвести его. Так что, возможно, что-то еще происходит, или я забыл закрыть консоль перед повторной попыткой.

Другие вопросы по тегам