¿Por qué es que la sintaxis de matrices de Common Lisp no está evaluando sus argumentos:Common Lisp: ¿Por qué no la matriz literal evalúa los argumentos?
(let ((a 1)) #2A((a 2) (3 4)))
=> #2A((A 2) (3 4))
Me hubiera adivinado era #2A((1 2) (3 4))
. ¿Esto es porque A
no está disponible al momento del lector?
¿Esperaría la lista literal ''((a 3) (3 4))' para evaluar? – kwatford
¿Es ''((a 2) (3 4))' una lista literal? Pensé que era la 'cita' y' ((a 2) (3 4)) 'era una lista literal. –
El '' 'es solo una macro de lector para' quote'. Entonces '' ((a 2) (3 4)) 'es simplemente' (quote ((a 2) (3 4))) '. En el código fuente para un programa de lisp común, la lista citada es una lista literal. Las listas simples representan el código del programa, no sus datos. Es un poco confuso al principio, pero tendrá sentido más adelante. – kwatford