7

I wrote the following example, in an attempt to experiment with R7RS libraries in Chibi Scheme 0.5.3:

(define-library (example hello)
    (export hello-world)
    (import (scheme base))
    (begin
      (define (hello-world) "hello, world"))) 

(import (scheme write)
        (example hello))
(write (hello-world))

Unfortunately when executed, it generates an error about an undefined variable:

$ chibi-scheme  hello.scm 
ERROR: undefined variable: hello-world

I must be making a simple mistake but don't see it. Any ideas?

4

2 に答える 2

6

これは単純な間違いであることがわかりました。ユーザー ガイドのモジュール システムのセクションによると、ファイル名はモジュール名と一致する必要があります。

モジュール (foo bar baz) の定義は、ファイル「foo/bar/baz.sld」で検索されます。

したがって、この場合、上記のライブラリ定義を追加する必要がexample/hello.sldあり、インポート セクションを新しい.scmファイルに抽出する必要があります (または、REPL に入力するなど)。

とにかく、些細な解決策ですが、他の誰かの助けになるかもしれません...

于 2012-05-04T14:02:06.323 に答える
2

一般に、R7RSはライブラリをSchemeシステムに表示する方法を定義しておらず、define-libraryを他のSchemeフォームと混合するコードの意味は定義されていません。

于 2012-11-03T18:04:43.547 に答える