In Common Lisp(SBCL 1.0.58)爲什麼宏OR使用gensym,但不是AND?在Common Lisp中,爲什麼宏使用gensym,但不是AND?
例如,
CL-USER> (macroexpand '(and 1 2 3 4 5))
(IF 1
(AND 2 3 4 5)
NIL)
T
CL-USER> (macroexpand '(or 1 2 3 4 5))
(LET ((#:G967 1))
(IF #:G967
#:G967
(OR 2 3 4 5)))
T
CL-USER>
我看着在宏定義defboot.lisp卻一無所獲的評論相關。
是的,我現在明白了。謝謝。 – kes