Buscar..


Sintaxis

  • (citar objeto) -> objeto

Observaciones

Hay algunos objetos (por ejemplo, símbolos de palabras clave) que no necesitan ser citados ya que se evalúan a sí mismos.

Ejemplo de cita simple

Quote es un operador especial que evita la evaluación de su argumento. Devuelve su argumento, sin evaluar.

CL-USER> (quote a)
A

CL-USER> (let ((a 3))
           (quote a))
A

'es un alias para el operador especial QUOTE

La 'thing notación es igual a (quote thing) .

El lector hará la expansión:

> (read-from-string "'a")
(QUOTE A)

Las citas se utilizan para evitar una evaluación posterior. El objeto citado se evalúa a sí mismo.

> 'a
A

> (eval '+ 1 2)
3

Si los objetos citados son modificados destructivamente, las consecuencias son indefinidas!

Evite operaciones destructivas en objetos citados. Los objetos citados son objetos literales. Posiblemente están incrustados en el código de alguna manera. La forma en que funciona y los efectos de las modificaciones no se especifican en el estándar Common Lisp, pero puede tener consecuencias no deseadas como modificar los datos compartidos, intentar modificar los datos protegidos contra escritura o crear efectos secundarios no deseados.

(delete 5 '(1 2 3 4 5))

Cotización y autoevaluación de objetos.

Tenga en cuenta que muchos tipos de datos no necesitan ser citados, ya que se evalúan a sí mismos. QUOTE es especialmente útil para los símbolos y las listas, para evitar la evaluación como formularios de Lisp.

Ejemplo para otros tipos de datos que no es necesario citar para evitar la evaluación: cadenas, números, caracteres, objetos CLOS, ...

Aquí un ejemplo para cuerdas. Los resultados de la evaluación son cadenas, ya sean citados en la fuente o no.

> (let ((some-string-1 "this is a string")
        (some-string-2 '"this is a string with a quote in the source")
        (some-string-3 (quote "this is another string with a quote in the source")))
    (list some-string-1 some-string-2 some-string-3))

("this is a string"
 "this is a string with a quote in the source"
 "this is another string with a quote in the source")

Citar por lo tanto los objetos es opcional.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow