ようこそ。睡眠不足なプログラマのチラ裏です。

Haskellのお勉強 その7

参照透明性

参照透明性とは、計算機言語の概念の一種である。コンテキストに左右されることなく、
式の値はその構成要素である変数や関数によってのみ定まることを参照透明性*1があるという。
具体的には、変数の値は最初に定義した値と常に同じであり、
関数は同じ変数を引数として与えられれば、必ず同じ値を返します。
当然、参照透明である言語では、変数に値を再割り当てを行うための演算「代入」を行う式を持ちません。
Haskellの評価過程は置き換えモデルで示すことができ、代入という概念がないので、
Haskellは参照透明の言語であると言うことができる。


参照透明が成り立つ言語では、式の値がプログラムのテキストから定まるという特徴から
宣言型言語と呼ばれたり、関数の数学的性質が保たれるという特徴から純粋関数型言語と呼ばれたりする。
一方変数の値の変更が認められているような参照透過的でない言語を手続き型言語と呼ぶ。

*1:参照透過性