次のコードを検討してください。
#!r6rs
(library
(test)
(export)
(import (rnrs))
(define a 5)
(begin
(define b 4)
(+ 3 b))
'cont
(define c 5)
'done)
<library body> は、<library body> に式を含める必要がないことを除いて、<body> (セクション 11.3 を参照) に似ています。次の形式にする必要があります。
<definition> ... <expression> ...
c
の定義は expression の後にあるのでエラーになると思っていました'cont
が、このプログラムは問題なく受け入れられます。
その後、輸出できるとa
思いました。c
しかし、そうではありませんc
が、b
エクスポートできます。(a
思った通りにエクスポートできます。)
R6RS ライブラリのルールについて、私が気付いていないことがあると思います。私が見逃しているポイントは何ですか?前もって感謝します。
ps) ラケット v5.3.3 を使用しています