ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   25 Environment   25.2 Dictionary of Environment

25.2.22 *, **, *** Variable

Value Type:
an object.

Initial Value:
implementation-dependent.

Description:
The variables *, **, and *** are maintained by the Lisp read-eval-print 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 top-level form by the Lisp read-eval-print 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 cube-root (x) (expt x 1/3))   CUBE-ROOT
(compile *)   CUBE-ROOT
(setq a (cube-root 27.0))  3.0
(* * 9.0)  27.0

Affected By:
Lisp read-eval-print loop.

See Also:
- (variable), + (variable), / (variable), Section 25.1.1 Top level loop

Notes:
 *   ==(car /)
 **  ==(car //)
 *** ==(car ///)

Allegro CL Implementation Details:
None.

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022-07-25