lisp comum: valor de slot para estruturas de desfiguração
Em comum lisp, o que posso usar para acessar o slot da estrutura usando o nome / símbolo do slot?
O que eu quero é
(defstruct point (x 0) (y 0))
(defmacro -> (struct slot) `(slot-value ,struct ,slot))
(setf p (make-point))
(setf (slot-value p 'x) 1)
(setf (-> p 'y) 2)
Estou usando o clozure cl, e no clozure cl isso funciona. No entanto, o AFAIK é um comportamento não padrão (equivalente ao "comportamento indefinido" do C ++). Eu não estou planejando mudar para outra implementação de CL, então devo continuar usandoslot-value
para estruturas, ou há uma maneira melhor de fazer isso?