chickadee » scheme » set!

(set! <variable> <expression>)syntax

<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

As an extension to R5RS, set! for unbound toplevel variables is allowed. Also, (set! (PROCEDURE ...) ...) is supported, as CHICKEN implements SRFI-17.