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ć?

questionAnswers(1)

yourAnswerToTheQuestion