
ANSI Common Lisp 25 Environment 25.2 Dictionary of Environment
25.2.22 *, **, *** 
Variable 
 Value Type:

an object.
 Initial Value:

implementationdependent.
 Description:

The variables *, **, and *** are
maintained by the Lisp readevalprint loop to save the
values of results that are printed each time through the loop.
The value of * is the most recent primary value that was printed,
the value of ** is the previous value of *, and
the value of *** is the previous value of **.
If several values are produced, * contains the first value only;
* contains nil if zero values are produced.
The values of *, **, and *** are updated immediately
prior to printing the return value of a toplevel form by the
Lisp readevalprint loop. If the evaluation of such a form
is aborted prior to its normal return, the values of *, **, and ***
are not updated.
 Examples:

(values 'a1 'a2) A1, A2
'b B
(values 'c1 'c2 'c3) C1, C2, C3
(list * ** ***) (C1 B A1)
(defun cuberoot (x) (expt x 1/3)) CUBEROOT
(compile *) CUBEROOT
(setq a (cuberoot 27.0)) 3.0
(* * 9.0) 27.0
 Affected By:

Lisp readevalprint loop.
 See Also:

 (variable),
+ (variable),
/ (variable),
Section 25.1.1 Top level loop
 Notes:

* ==(car /)
** ==(car //)
*** ==(car ///)
 Allegro CL Implementation Details:

None.
