関数型プログラミングとは何だろう? Rúnar Óli さん はこう定義している:
関数を使ったプログラミング。
関数とは何だろう?
f: A => B
型がA
の全ての値を、唯一の型がB
の値に関連付け 他には何もしない。
この「他には何もしない」という部分を説明するために、以下のように参照透過性という概念を導入する:
式
e
は、プログラムの観測可能な結果に影響を与えることなく使われている全てのe
をその値に置き換えることができるとき参照透過だ。
この概念を使うと、関数型プログラミングとは参照的に透過な式の木を組み上げていくことだと考えることができる。メモ化はこの参照透過性を利用した方法の 1つだ。