1

単純なスキーム アプリケーションで問題が発生しました。1 つのファイル (dataloader.ss) で、struct を定義します。

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

しかし、別のファイルで構造を使用することはできません。私が試みているのは、dataloader.ss で、構造をエクスポートすることです

(provide book-category)

そして、他のファイルでは、次をインポートします。

(require "dataloader.ss").

しかし、構造体関数の 1 つを呼び出すと取り返しのつかないほど失敗します。たとえば、

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

私に与えます:

定義前の識別子への参照: make-book-category

一方、2番目のファイルで構造体を再定義すると、「モジュール:識別子はすでにブックカテゴリにインポートされています」と表示されるため、インポートは少なくとも部分的に機能すると思います。しかし、関連する機能にはまだアクセスできません。他に何かすることはありますか?

前もって感謝します!

4

1 に答える 1

1

わかりました。次のように、struct-out キーワードを使用してエクスポートする必要があります。

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