Schemeで値の代入を行う

※ 以下はScheme初心者である私の勉強用のメモです。

間違っている可能性がありますので注意してください。

値の代入を行う

set!式を使用することで、変数へ値の代入を行うことができる。
ただし、Schemeプログラマは不必要な値の代入を嫌う傾向にあるようである。

一般形
(set! 変数名 )
</pre></blockquote>
<b>例</b><br />
<blockquote><pre>
;変数xに2を代入する
(define set-test1
  (let ((x 1))
    (set! x 2)
    x))

; 実行例
> set-test1
2

副作用(side-effect)

値を返さない式を評価することを副作用という。つまり代入を行うと副作用が発生する。

;以下のset-test2関数は値を返さない
(define set-test2
  (let ((x 1))
    (set! x 2)))

; 実行例
> set-test2