輔助變數

&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))