輔助變數
&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))