Next: , Previous: , Up: scheme library form   [Index]


3.7.1.4 The import specification

Each ?import-spec specifies a set of bindings to be imported into the library, the levels at which they are to be available, and the local names by which they are to be known. An ?import-spec must be one of the following:

?import-set
(for ?import-set ?import-level …)

An ?import-level is one of the following:

run
expand
(meta ?level)

where ?level represents an exact integer object.

As an ?import-level, run is an abbreviation for (meta 0), and expand is an abbreviation for (meta 1).

An ?import-set names a set of bindings from another library and possibly specifies local names for the imported bindings. It must be one of the following:

?library-reference
(library ?library-reference)
(only ?import-set ?identifier ...)
(except ?import-set ?identifier ...)
(prefix ?import-set ?identifier)
(rename ?import-set (?identifier1 ?identifier2) ...)

A ?library-reference identifies a library by its name and optionally by its version. It has one of the following forms:

(?identifier1 ?identifier2 ...)
(?identifier1 ?identifier2 ... ?version-reference)

A ?library-reference whose first ?identifier is ‘for’, ‘library’, ‘only’, ‘except’, ‘prefix’, or ‘rename’ is permitted only within a (library ?library-reference) ?import-set. The ?import-set (library ?library-reference) is otherwise equivalent to ?library-reference.

A ?library-reference with no ?version-reference (first form above) is equivalent to a ?library-reference with a ?version-reference of ().