Row displays contain zero, two or more constituent units. A row display that contains no units is known as a vacuum. The vacuum yields an empty multiple when evaluated, with whatever number of dimensions required by the appropriate row mode. Each dimension has a lower bound of one and an upper bound of zero.
The following example shows an identity declaration that ascribes a
multiple that contains no elements to the identifier empty
:
[]int empty = ();
The empty collateral clause ()
is in a strong context where a
multiple of mode []int
is required, and therefore constitutes a
row display. The following holds for the created multiple:
assert (lwb empty = 1); assert (upb empty = 0); assert (elems empty = 0);
The following example shows a similar identity declaration, but this time the row mode has three dimensions:
[,,]int empty cube = ();
Note how the vacuum is sill a single empty row display, i.e. it is not
written ((()))
. All dimensions of the multiple have the same
bounds:
assert (1 lwb empty = 1); assert (1 upb empty = 0); assert (1 elems empty = 0); assert (2 lwb empty = 1); assert (2 upb empty = 0); assert (2 elems empty = 0); assert (3 lwb empty = 1); assert (3 upb empty = 0); assert (3 elems empty = 0);
[RR 3.3.1.k]:
k) *vacuum : EMPTY PACK.