common lisp: wartość slotu dla struktur defstruct
W powszechnym seplenieniu, co mogę wykorzystać, aby uzyskać dostęp do slotu struktury używając nazwy / symbolu slotu?
Chcę tego
(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)
Używam clozure cl i W clozure cl to działa. Jednak AFAIK to niestandardowe zachowanie (równoważne z „niezdefiniowanym zachowaniem” C ++). Nie planuję przejścia na inną implementację CL, więc powinienem używaćslot-value
dla struktur, czy jest lepszy sposób, aby to zrobić?