The values of *read*
, *eval*
, and *print* (this
variable), if valid functions (that is, ones acceptable to the
function funcall), will be
funcalled to read user input, evaluate the result from the read, and
print the result of the evaluation. If the value of this variable is
not a funcallable object, the default function, print will be used in place of the
non-funcallable object. The default value for all three variables is
nil
.
To be a value of one of these variables, a function must accept one
argument (for *eval*
and *read*
) or two arguments (for
*print* (this
variable)). The value of *read*
will be passed the stream which is
to be read. The value of *eval*
will be passed a form to
evaluate. The value of *print* (this
variable) will be passed a value to print
and a stream. Great care should be taken before setting any of these
variables, since binding these to something other than a proper
function will result in a recursive error (since after an error,
another read-eval-print loop is called). If you change the value of
one of these variables, you may return to the default behavior by
changing the value back to nil
.
If you build an image with the
include-tpl keyword argument to
build-lisp-image nil
, the image will have a
minimal top level which will use *read*
, *eval*
, and *print* (this
variable). The values must be valid functions in that case. See
Minimal
top levels in building-images.htm for
information on minimal top levels.
See top-level.htm for more information on the top level and top-level commands.
The documentation is described in introduction.htm and the index is in index.htm.
Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.
Created 2000.10.5.