辅助变量
&AUX
关键字可用于定义函数的局部变量。它们不是参数; 用户无法提供它们。
&AUX
变量很少使用。你总是可以使用 LET
,或者在函数体中定义局部变量的其他方法。
&AUX
变量具有以下优点:整个函数体的局部变量移动到顶部,并且它使得一个缩进级别(例如由 LET 引入)不必要。
(defun foobar (x y &aux (z (+ x y)))
(format t "X (~d) and Y (~d) are required.~@
Their sum is ~d."
x y z))
(foobar 10 20)
; X (10) and Y (20) are required.
; Their sum is 30.
;=> NIL
一种典型用法可以是解析指示符参数。再说一次,你不需要这样做; 使用 let
就像惯用语一样。
(defun foo (a b &aux (as (string a)))
"Combines A and B in a funny way. A is a string designator, B a string."
(concatenate 'string as " is funnier than " b))