En Common Lisp, los objetos entre comillas son datos literales constantes. No debe modificar estos datos, ya que las consecuencias no están definidas. Las posibles consecuencias son: modificación de los datos compartidos, intento de modificar datos de sólo lectura, un error podría ser señalizado, que sólo podría trabajar, ...
Para listas:
'(1 2 3)
Por encima es una lista constante , que será construido por el lector y evaluándose a sí mismo, porque está citado. Si aparece en el código Lisp, un compilador integrará estos datos de alguna manera en el código FASL.
(quote (1 2 3))
es otra manera de escribirlo.
(list 1 2 3)
Ésta es una llamada de la función Common Lisp LIST
con tres argumentos 1
, 2
y 3
. Cuando se evalúa, el resultado es una nueva lista (1 2 3)
.
similares:
'(1 . 2) and (cons 1 2)
'#(1 2 3) and (vector 1 2 3)
Uno de ellos es los datos literales y el otro es una llamada de función que construye una estructura de este tipo de datos.
se dejan similares, de hecho, echar un vistazo a mi pregunta [aquí] (http://stackoverflow.com/questions/32927115/lisp-quote-work-internally?noredirect = 1 # comment53680808_32927115) – William