CleanやHaskellのような純粋関数プログラミング言語における参照透過性(referential transparency)について 2008/3/23 参照透過性とは CleanやHaskellといった純粋関数型プログラミング言語では、参照透過性(referential transparencyあるいは参照透明性)という概念が重要になっている。 まず、参照透過性という概念から説明する。 参照透過性というと聞きなれないが、要するに、ある式の評価結果が常に同じになるということ。参照透過性というよりも、評価結果恒常性といった方が理解しやすいかもしれない。 たとえば、現在時刻を取得するgetTimeという関数があるとする。この関数は、異なる時刻に呼び出すと、当然異なる時刻を返す。そのため、この関数の呼び出しは参照透過的でない。正弦関数sinは、同じ引数に対して常に同じ値を返す。そのため、正