F: Wie erstellt und verwendet man :keywords
?
Betrachten Sie einen (naiven, anscheinend) Versuch, auf die folgende Spielzeugliste zuzugreifen:
(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
Der erste Schlüssel funktioniert wie erwartet, der zweite Schlüssel jedoch nicht. make-keyword
Wie erstellt und verwendet man ein Schlüsselwort, sofern es keine offensichtliche Funktion gibt?
Ursprüngliche Motivation: Ich muss eine Zeichenfolge in einen Suchschlüssel umwandeln, der ein Symbol ist, auf das ich put
Eigenschaften anwenden kann .
Bei der Formulierung dieser Frage habe ich zumindest einen Teil der Antwort erhalten, die ich separat veröffentliche. Ich hoffe, dass ein besserer Verstand als meiner es verbessern kann.
(eq :foo (read ":foo"))