LINUX.ORG.RU

История изменений

Исправление 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>)