我在几个项目中都遇到过这个问题,但是这个测试用例删除了理解问题所不需要的一切。我一直在用它来找出问题所在:
所以我有一个目录,里面有 2 个文件foo.scm
,和bar.scm
:
;;;foo.scm
(module foo (baz)
(import chicken scheme)
(define (baz)
(display "bazzer!\n")))
;;;bar.scm
(module baz (quux)
(import chicken scheme)
(use foo)
(define (quux)
(baz)
(display "quuxed!\n")))
baz.scm 无法在 csi 中运行并出现以下错误:
Error: (import) during expansion of (import ...) - cannot import from undefined module: foo
我检查了文档:use
应该将代码加载到内存中,然后再加载import
。我什至已经运行require
了,该函数use
用于单独加载代码。它运行顺利,只是import
失败了。我还尝试将代码导入csi
. use
不起作用,但require
后面跟着import
做,即使那应该等同于use
.
简而言之,我感到非常困惑。任何人都可以解释发生了什么,以及如何解决它?