SICPを読む(95) 3.1.3 - 代入を取り入れた対価

代入を取り入れた対価に関する解説を読む。


関数型プログラミングの素晴らしさのひとつは、デバッグのしやすさだ。

(define (square x) (* x x))

と定めたら、(square 2)は4。変わらない。絶対変わらない保障がある。バグをはっきり追える。


命令型プログラミングの代入を取り入れることで、このルールは一瞬にして崩れ去る。

i++;

次の瞬間、置き換えモデルが通用しなくなる。


納得できる。


でも待て。関数を定義することは破壊的な行為だ。代入がなければ新しい世界は作れない。


真っ白なキャンパスのままでは面白くない。


代入が悪なのかどうかはまだ判断できない。