考虑以下代码:
#!r6rs
(library
(test)
(export)
(import (rnrs))
(define a 5)
(begin
(define b 4)
(+ 3 b))
'cont
(define c 5)
'done)
来自R6RS 报告 7.1:
<library body> 类似于 <body>(参见第 11.3 节),只是 <library body> 不需要包含任何表达式。它必须具有以下形式:
<definition> ... <expression> ...
我认为它会发出错误,因为定义c
是在表达式之后'cont
,但是这个程序被干净地接受了。
在那之后,我认为a
并且c
可以出口。但是,不是c
但b
可以导出。(a
可以像我想的那样导出。)
我认为关于 R6RS 库规则我没有意识到一些事情。我错过了什么?提前致谢。
ps)我正在使用 Racket v5.3.3