Common Lisp tiene símbolos de palabra clave.
Las palabras clave son símbolos, también.
(symbolp ':foo) -> T
Lo que hace especiales palabras clave:
- : foo es analizada por el lector de Common Lisp como símbolo de la palabra clave :: foo
- palabras clave se evalúan a sí mismos: foo: ->: foo
- el paquete principal de símbolos de palabras clave es el paquete KEYWORD: palabra clave: foo ->: foo
- palabras clave se exportan desde el paquete KEYWORD
- palabras clave son constantes, no está permitido asignar un valor diferente
De lo contrario, las palabras clave son símbolos normales. Por lo tanto, las palabras clave pueden nombrar funciones o tener listas de propiedades.
Recuerde: en Common Lisp los símbolos pertenecen a un paquete. Esto se puede escribir como:
- foo, cuando el símbolo es accesible en el paquete actual
- foo: bar, cuando el símbolo FOO se exporta desde la barra de paquete
- foo :: bar, cuando el El símbolo FOO está en el paquete BAR
Para los símbolos de palabras clave que significa que: foo, palabra clave: foo y palabra clave :: foo son todos el mismo símbolo. Por lo tanto, las dos últimas notaciones generalmente no se usan.
Así que: foo se acaba de analizar para que esté en el paquete KEYWORD, suponiendo que no dar el nombre del paquete antes del nombre del símbolo significa por defecto el paquete KEYWORD.
Ver también: [en Clojure, ¿por qué tienen cadenas, palabras clave y símbolos?] (Http://stackoverflow.com/q/11655080/405550) – Zaz