MIT/GNU Scheme provides an initial environment that contains all of the variable bindings described in this manual. Most environments are ultimately extensions of this initial environment. In Scheme, the environment in which your programs execute is actually a child (extension) of the environment containing the system’s bindings. Thus, system names are visible to your programs, but your names do not interfere with system programs.
The environment in effect at some point in a program is called the
current environment at that point. In particular, every
REP loop has a current environment. (REP stands for
“read-eval-print”; the REP loop is the Scheme program that
reads your input, evaluates it, and prints the result.) The environment
of the top-level REP loop (the one you are in when Scheme
starts up) starts as
user-initial-environment, although it can be
changed by the
ge procedure. When a new REP loop is
created, its environment is determined by the program that creates it.