#### 4.1.6 Assignments

— syntax: set! <variable> <expression>

> <Expression> is evaluated, and the resulting value is stored in the location to which <variable> is bound. <Variable> must be bound either in some region enclosing the ‘`set!`’ expression or at top level. The result of the ‘`set!`’ expression is unspecified.

>     (define x 2)
>          (+ x 1)                                ==>  3
>          (set! x 4)                             ==>  unspecified
>          (+ x 1)                                ==>  5