Q: Come si crea e si usa :keywords
?
Prendi in considerazione un tentativo (apparentemente ingenuo) di accedere alla seguente lista dei giocattoli:
(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 prima chiave funziona come previsto, ma la seconda chiave no. Nella misura in cui non esiste una make-keyword
funzione ovvia , come si crea e si usa una parola chiave?
Motivazione originale: devo trasformare una stringa in una chiave di ricerca che è un simbolo sul quale posso put
proprietà.
Nel processo di formulazione di questa domanda, ho ottenuto almeno una parte della risposta, che sto postando separatamente. Spero che menti più brillanti delle mie possano migliorarla.
(eq :foo (read ":foo"))