Variable *
オブジェクト
実装依存
変数*, **, ***は、 Lispのread-eval-printループによって管理されている、 ループを通して毎時印刷した結果の保存された値です。
*の値はもっとも最近印刷された主値であり、 **の値は*の前の値であり、 ***の値は**の前の値です。
もし複数の値が生成されたとき、 *は最初の値のみを含みます。 もしゼロ個の値が生成されたとき、 *はnilを含みます。
*, **, ***の値は、 Lispのread-eval-printループによって トップレベルフォームの返却値が印刷される前に即座に更新されます。 もしそのようなフォームの評価が通常の返却の前に中断されたとき、 *, **, ***の値は更新されません。
(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.0Lispのread-eval-printループ
* == (car /)
** == (car //)
*** == (car ///)