Sequencing (MIT/GNU Scheme 11.2)

Next: Iteration, Previous: Conditionals, Up: Special Forms [Contents][Index]

### 2.8 Sequencing

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

standard 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
      lambda
      let
      let*
      letrec
      letrec*
      let-values
      let*-values
      named-lambda
      parameterize