общий lisp: значение слота для структур defstruct
В общем, что я могу использовать для доступа к слоту структуры, используя имя / символ слота?
То, что я хочу, это я
(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)
м, используя clozure cl, и в clozure cl это работает. Тем не менее, AFAIK это нестандартное поведение (эквивалентнонеопределенное поведение " C ++). Я'Я не планирую переходить на другую реализацию CL, поэтому я должен продолжать использоватьslot-value
для конструкций, или есть лучший способ сделать это?