1 Language Model
2 Syntactic Forms
3 Datatypes
4 Structures
5 Classes and Objects
6 Units
7 Contracts
8 Pattern Matching
9 Control Flow
10 Concurrency
11 Macros
12 Input and Output
13 Reflection and Security
14 Operating System
15 Memory Management
16 Running PLT Scheme
Bibliography
Index
Version: 4.0.2

 

6.9 Single-Unit Modules

When scheme/unit is used as a language name with #lang, the module body is treated as a unit body. The body must match the following module-body grammar:

  module-body

 

=

 

require-decl ...

(import tagged-sig-expr ...)

(export tagged-sig-expr ...)

init-depends-decl

unit-body-expr-or-defn

...

 

 

 

 

 

  require-decl

 

=

 

(require require-spec ...)

 

 

|

 

(begin require-decl ...)

 

 

|

 

derived-require-form

After any number of require-decls, the content of the module is the same as a unit body.

The resulting unit is exported as base@, where base is derived from the enclosing module’s name (i.e., its symbolic name, or its path without the directory and file suffix). If the module name ends in -unit, then base corresponds to the module name before -unit. Otherwise, the module name serves as base.