P: ¿Cómo se crea y usa :keywords
?
Considere un intento (ingenuo, aparentemente) de acceder a la siguiente lista de juguetes:
(setf alist '((:key-1 "Key no. 1")
(:key-2 "Key no. 2")))
(assq :key-1 alist) ; => (:key-1 "Key no. 1")
(assq (make-symbol ":key-1") alist) ; => nil
La primera clave funciona como se esperaba, pero la segunda clave no. En la medida en que no exista una make-keyword
función obvia , ¿cómo se crea y usa una palabra clave?
Motivación original: necesito transformar una cadena en una clave de búsqueda que es un símbolo en el que puedo put
propiedades.
En el proceso de formulación de esta pregunta, llegué al menos a parte de la respuesta, que publico por separado. Espero que mentes más brillantes que las mías puedan mejorarlo.
(eq :foo (read ":foo"))