En Common Lisp (SBCL 1.0.58) ¿por qué la macro O usa un gensym, pero no AND?En Common Lisp, ¿por qué la macro O usa un gensym, pero no AND?
Por ejemplo,
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>
Miré a defboot.lisp donde se definen las macros pero no encontró nada relevante en los comentarios.
Sí, ya lo veo. Gracias. – kes