Reference: PLT Scheme

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
contents index
← prev up next →

#### 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.

contents index
← prev up next →