1

我对一个简单的方案应用程序的问题感到震惊。在一个文件(dataloader.ss)中,我定义了一个结构:

(define-struct book-category (id name books))

但我不能在另一个文件中使用该结构。我尝试的是,在 dataloader.ss 中,导出结构

(provide book-category)

在另一个文件中,我导入:

(require "dataloader.ss").

但是对结构函数之一的调用不可挽回地失败:例如

(make-book-category 2 "test" '())

给我 :

在定义之前引用标识符:make-book-category

另一方面,如果我在第二个文件中重新定义结构,它会告诉我:“模块:标识符已导入:书籍类别”所以,我猜导入至少部分有效。但我仍然无法访问相关功能。还有其他事情要做吗?

提前致谢!

4

1 回答 1

1

好的,找到了,我必须使用 struct-out 关键字导出,如

(provide  (struct-out book-category))
于 2009-12-11T17:37:31.713 回答