Assume that exp1 and exp2 are expressions of types T1 and T2
respectively, where T1 is void. Then a sequence expression
(exp1; exp2) can be formed that is of the type T2. When evaluating the
sequence expression (exp1; exp2), we first evaluate exp1 to the void value
and then evaluate exp2 to some value, which is also the value of the
sequence expression. When more expressions are sequenced, all of them but
the last one need to be of the type void and the type of the
last expression is also the type of the sequence expression being formed.
Evaluating a sequence of more expressions is analogous to evaluating a
sequence of two. The following example is a sequence expression:
Evaluating this sequence expression prints out (onto the console) the
5-letter string "Hello". Instead of parentheses, we can also use the
keywords
begin and
end to form a sequence
expression:
If we like, we may also add a semicolon immediately after the last
expression in a sequence as long as the last expression is of the type
void. For instance, the above example can also be written as
follows:
I also want to point out the following style of sequencing:
which is rather common in functional programming.