- (define-class NAME (SUPERCLASS ...) (SLOT-NAME ...) [METACLASS])syntax
Sets the variable NAME to a new class: a new instance of the class <class> or METACLASS, if supplied.
SUPERCLASS ... is a list of superclasses of the newly created class. If no superclasses are given, then <object> is assumed.
SLOT-NAME ... are the names of the direct slots of the class. A SLOT-NAME is a symbol.
By convention, identifiers bound to classes in TinyCLOS are denoted by angle brackets as above. This is not required, however. A class may be bound to any identifier without affecting the behavior of the system.
(define-class NAME (SUPERCLASS ...) (SLOT-NAME ...) METACLASS)
is equivalent to
(define NAME (make METACLASS 'name 'NAME 'direct-supers (list SUPERCLASS ...) 'direct-slots (list 'SLOT-NAME ...)) )