<expression> が評価されて、その結果の値が <variable> の束縛されている場所に格納される。 <variable> は set! を取り囲む領域のいずこかかトップレベルになければならない。 set! 式の結果は未規定である。
(let ((x 2)) (+ x 1) (set! x 4) (+ x 1)) ⇒ 5
<variable> が変更不可能な束縛を参照していた場合は構文違反である。
注: 識別子 set! はレベル 1 でも公開されている。R6RS:翻訳:R6RS:11.19 Macro transformers 参照。