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