1. Record example - Part II
Following my last post about my ideas of records:
A record *is* a sequence. A "frozen" sequence as Tor Bernhard Gausen said ;)
The record definition declares the general form (or template) of a variable
of this type. Example:
record Author
sequence FistName
sequence MiddleName
sequence lastName
end record
record Book
sequence ISBN
sequence Title
sequence of Author
integer Pages
integer Year
sequence Publisher
sequence Summary
atom Price
end record
Author new_author
sequence Books of Book
new_author ==> { sequence , sequence , sequence }
==> { "", "" , ""}
Books ==> { { sequence , sequence , { Author }, integer , integer ,
sequence , sequence, atom} }
==> { { "" , "" , { { "" , "" , "" } } , 0 , 0 , "" , ""
, 0.0 } }
I've supposed as default values for sequences (""), integers (0) and atoms
(0.0). A "default" keyword, or a simple assign (=) can allow to set the
default value:
record Author
sequence FistName default "John"
sequence MiddleName default ""
sequence lastName "Smith"
end record
Author new_author
new_author == { "Jhon", "" , "Smith"}
This "merges" my opinion about records (structures) and templates.
Regards,
Daniel Berstein
daber at pair.com