(defun class-slot-names (class-name) "Given a CLASS-NAME, returns a list of the slots in the class." (mapcar #'clos:slot-definition-name (clos:class-slots (find-class class-name)))) (defmethod class-slot-names ((instance standard-object)) "Given an INSTANCE, returns a list of the slots in the instance's class." (mapcar #'clos:slot-definition-name (clos:class-slots (class-of instance)))) You can use CLASS-DIRECT-SLOTS instead of CLASS-SLOTS if you don't want inherited slots. Note that these functions are from the meta-object protocol specified in the original X3J13 draft spec (document X3J13/88-003), and may not be supported by all Lisps.Go Back Up