Variable *, **, ***

UP


Variable *, **, ***

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.0

影響

Lispのread-eval-printループ

参考

-, +, /, 25.1.1. トップレベルのループ

備考

*   ==  (car /)
**  ==  (car //)
*** ==  (car ///)

TOP, Github