Sequencing - MIT/GNU Scheme 9.0.1
Description: MIT/GNU Scheme 9.0.1

Next: Iteration, Previous: Conditionals, Up: Special Forms

### 2.8 Sequencing

The `begin` special form is used to evaluate expressions in a particular order.

— special form: begin expression expression ...

> The expressions are evaluated sequentially from left to right, and the value of the last expression is returned. This expression type is used to sequence side effects such as input and output.

>               (define x 0)
>               (begin (set! x 5)
>                      (+ x 1))                 ⇒  6

>               (begin (display "4 plus 1 equals ")
>                      (display (+ 4 1)))
>                                               -|  4 plus 1 equals 5
>                                               ⇒  unspecified

> Often the use of `begin` is unnecessary, because many special forms already support sequences of expressions (that is, they have an implicit `begin`). Some of these special forms are:

>               case
>               cond
>               define          ;``procedure define'' only
>               do
>               fluid-let
>               lambda
>               let
>               let*
>               letrec
>               named-lambda

> The obsolete special form `sequence` is identical to `begin`. It should not be used in new code.