P: Como alguém cria e usa :keywords
?
Considere uma tentativa (ingênua, aparentemente) de acessar o seguinte lista de brinquedos:
(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
A primeira chave funciona conforme o esperado, mas a segunda chave não. Na medida em que não existe uma make-keyword
função óbvia , como alguém cria e usa uma palavra-chave?
Motivação original: preciso transformar uma string em uma chave de pesquisa que seja um símbolo no qual eu possa put
propriedades.
No processo de formular esta pergunta, recebi pelo menos parte da resposta, que estou publicando separadamente. Espero que mentes mais brilhantes que as minhas possam melhorar isso.
(eq :foo (read ":foo"))