P: Jak się tworzy i używa :keywords
?
Rozważ (naiwnie, najwyraźniej) próbę uzyskania dostępu do następującej listy zabawek:
(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
Pierwszy klucz działa zgodnie z oczekiwaniami, ale drugi klucz nie. O ile nie ma oczywistej make-keyword
funkcji, jak można utworzyć i użyć słowa kluczowego?
Oryginalna motywacja: muszę przekształcić ciąg znaków w klucz wyszukiwania, który jest symbolem, na którym mogę put
właściwości.
W trakcie formułowania tego pytania uzyskałem przynajmniej część odpowiedzi, którą zamieszczam osobno. Mam nadzieję, że jaśniejsze umysły niż moje mogą poprawić.
(eq :foo (read ":foo"))