SICPを読む(95) 3.1.3 - 代入を取り入れた対価
代入を取り入れた対価に関する解説を読む。
関数型プログラミングの素晴らしさのひとつは、デバッグのしやすさだ。
(define (square x) (* x x))
と定めたら、(square 2)は4。変わらない。絶対変わらない保障がある。バグをはっきり追える。
命令型プログラミングの代入を取り入れることで、このルールは一瞬にして崩れ去る。
i++;
次の瞬間、置き換えモデルが通用しなくなる。
納得できる。
でも待て。関数を定義することは破壊的な行為だ。代入がなければ新しい世界は作れない。
真っ白なキャンパスのままでは面白くない。
代入が悪なのかどうかはまだ判断できない。