A set constructor has the form:
S{e_1, ..., e_n}where
S
is a set type and the e
's are expressions or ranges of
the form lo..hi
. The constructor denotes a value of type S
containing the listed values and the values in the listed ranges. The
e
's, lo
's, and hi
's must be assignable to the element
type of S
.
An array constructor has the form:
A{e_1, ..., e_n}where
A
is an array type and the e
's are expressions. The
constructor denotes a value of type A
containing the listed elements in
the listed order. The e
's must be assignable to the element type of
A
. This means that if A
is a multi-dimensional array, the
e
's must themselves be array-valued expressions.
If A
is a fixed array type and n
is at least 1
, then
e_n
can be followed by ``, ..
'' to indicate that the value of
e_n
will be replicated as many times as necessary to fill out the
array. It is a static error to provide too many or too few elements for a
fixed array type.
A record constructor has the form:
R{Bindings}where
R
is a record type and Bindings
is a list of keyword or
positional bindings, exactly as in a procedure call. The list of bindings is
rewritten to fit the list of fields and defaults of R
, exactly as for a
procedure call; the record field names play the role of the procedure formal
parameters. The expression denotes a value of type R
whose field
values are specified by the rewritten binding.
The rewritten binding must bind only field names and must bind each field name exactly once. Each expression in the binding must be assignable to the type of the corresponding record field.
m3-support@elego.de