define-struct
(define-struct NAME (NAME ...))
The define-struct form is used to define a new kind of structure. The structure's fields are named by the names in parentheses. After evaluation of a define-struct form, a set of new primitives is available for creation, extraction, and type-like queries: -
make-STRUCTNAME : takes a number of arguments equal to the number of fields in the structure, and creates a new instance of this structure. -
STRUCTNAME-FIELDNAME : takes an instance of the structure and returns the field named by FIELDNAME. -
set-STRUCTNAME-FIELDNAME! : updates an instance of the structure and by changing the field named by FIELDNAME. -
STRUCTNAME? : takes any value, returns true if the value is an instance of the structure. -
struct:STRUCTNAME : represents the structure kind, but it is never used directly. -
STRUCTNAME : an identifier representing the structure kind. It can be used with shared.
It is an error for any of the created names to be the same as another primitive or another user definition.
Advanced Student Language