モジュールは、複数の名前(変数名、関数名、クラス名)をグループ化すための概念です。他の言語では、名前空間(namespace)やパッケージ(package)と呼ばれることもあります。
別のモジュールに属していれば、同名の変数を別のものとして扱うことができます。
(module A () (define x 42)) (module B () (define x 10)) (trace A.x) ;; => 42 (trace B.x) ;; => 10
モジュールを宣言します。
exportsには外部に公開する名前を指定します。
(module A (x y) (define x 10) (define y 11) (define z 12) ;; <- 公開されない )
空リストを指定すると、全ての名前が公開されます。
bodyには任意の文を用いることができます。モジュールのネストも可能です。