Next: gauche.bitvector - Bitvector utilities, Previous: gauche.array - Arrays, Up: Library modules - Gauche extensions [Contents][Index]
gauche.base - Importing gauche built-insThis module exports Gauche built-in procedures and syntaxes, so that
they can be imported to other modules that don’t inherit gauche module.
All the bindings available in the gauche module are exported,
except import, which is renamed to gauche:import to
avoid conflict with R7RS import.
The module extends gauche.keyword, so
also exports all the keywords—the bindings from gauche.keyword—
so that the code imports gauche.base can access to self-bound keywords
without inheriting the keyword module.
Typical Gauche code doesn’t need this module, for built-ins are available
by default through inheritance.
A newly created module inherits the gauche module by default.
(See Module inheritance, for the details.)
Sometimes you need a module that doesn’t inherit the gauche module,
yet you want to use Gauche built-in features. Particularly, R7RS libraries
and programs require any bindings to be explicitly imported,
so R7RS’s import and define-library sets up the module not
to inherit the gauche module. In R7RS code, you need
(import (gauche base)) to use Gauche’s built-in features.
Another use case is to eliminate some built-in bindings, yet
keep the rest of bindings accessible, in your module.
For example, the following setup creates almost-gauche module
that has almost all default bindings except string-scan
and string-split:
(define-module almost-gauche
(use scheme.r5rs)
(use gauche.base :except (string-scan string-split)
:rename ((gauche:import import)))
(extend)
)
(select-module almost-gauche)
;; your code here
Note the empty extend; it empties the module’s inheritance.
(The :rename option of gauche.base is just to get
the original name of import back in almost-gauche module;
if you don’t use import directly, you won’t need it.)
Next: gauche.bitvector - Bitvector utilities, Previous: gauche.array - Arrays, Up: Library modules - Gauche extensions [Contents][Index]