The values of *read*
, *eval* (this variable),
and *print*
, 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, eval 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* (this variable) and *read*
) or two arguments (for *print*
). The value of
*read*
will be
passed the stream which is to be read. The value of
*eval* (this variable) will be passed a
form to evaluate. The value of *print*
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* (this variable), and
*print*
. 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.