Variable | Package: top-level | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## *eval*

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.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version