declaration/definition
declare record record-type-name (extends record-type-name)? ((field field declaration)* | elsewhere)
You can use declare record
to declare a record type.
Here is how you would declare a record type to hold a simple metadata record for a document:
declare record document-metadata field stream author field stream title field stream publisher field integer year field switch in-print initial {true}
Each field in the record is itself of a particular type and is declared just as a local variable of that type would be declared, substituting the word field
for the word local
. Each field in a record is itself a shelf.
A record declaration by itself simply defines a record type. To create a record you must create a variable of the record type.
A record can be declared as an extension of another record type, using extends
:
declare record book-metadata extends document-metadata field stream isbn-number
An extended record type inherits the fields of its base type.
The keyword elsewhere
can be used record pre-definitionto make the record name and some of the properties available without defining all of the record's properties.