История изменений
Исправление korvin_, (текущая версия) :
Для структур надо будет доопределять gen-copy (или сделать defstruct+ которые будет делать это автоматически).
Намекну немножко:
(defstruct foo x y z)
; FOO
(class-of (find-class 'foo))
; #<STANDARD-CLASS STRUCTURE-CLASS>
(class-slots (find-class 'foo))
; (#<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot X #x302000E3143D> #<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot Y #x302000E30EBD> #<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot Z #x302000E30DED>)
Исходная версия korvin_, :
Для структур надо будет доопределять gen-copy (или сделать defstruct+ которые будет делать это автоматически).
Намекну немножко:
(defstruct foo x y z)
; FOO
(class-of (find-class 'foo))
; #<STANDARD-CLASS STRUCTURE-CLASS>
(fboundp 'class-slots)
; #<STANDARD-GENERIC-FUNCTION CLASS-SLOTS #x3020000394AF>
(class-slots (find-class 'foo))
; (#<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot X #x302000E3143D> #<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot Y #x302000E30EBD> #<STRUCTURE-EFFECTIVE-SLOT-DEFINITION for instance slot Z #x302000E30DED>)