begin syntax is used for grouping several expressions
together so that they are treated as if they were one expression.
This is particularly important when syntactic expressions are used
which only allow one expression, but the programmer wants to use more
than one expression in that place. As an example, consider the
conditional expression below:
(if (> x 0) (begin (display "greater") (newline)))
If the two calls to
newline were not embedded
begin-statement, the call to
newline would get
misinterpreted as the else-branch of the
The expression(s) are evaluated in left-to-right order and the value of the last expression is returned as the value of the
begin-expression. This expression type is used when the expressions before the last one are evaluated for their side effects.
Guile also allows the expression
beginwith no sub-expressions. Such an expression returns the `unspecified' value.