開発 参照の透明性とは何ですか? -techopediaからの定義

参照の透明性とは何ですか? -techopediaからの定義

目次:

Anonim

定義-参照の透明性とはどういう意味ですか?

参照の透過性は、プログラムまたはプログラミング言語、特にHaskellやRなどの関数型プログラミング言語の特定の部分のプロパティです。プログラム内の式は、その値で置き換えることができ、結果の動作が変更前と同じです。 つまり、使用する入力が参照であっても、参照が指している実際の値であっても、プログラムの動作は変更されません。

Techopediaは参照の透明性について説明します

参照の透明性は、分析哲学にルーツがあります。分析哲学は、数学と論理の方法に基づいて自然言語の構成、引数、およびステートメントを研究し、コンピューター科学者によって採用されていますが、プログラミングとはほとんど関係のない哲学の一分野です。

概念は単純で、式が意味する「リファラント」は、式の意味を変更せずに「リファラー」を置き換えるために使用できます。 たとえば、「ルークの父は悪人です」、「ルークの父」という文は、スターウォーズの伝承の「ダースベイダー」に言及しています。 「ルークの父親」はいつでも「ダースベイダー」に置き換えることができ、ステートメントの意味は変わらないため、ステートメントは参照的に透明です。 しかし、「ルークの父が実際にダースベイダーであると「帝国の逆襲」まで聴衆は知らなかった」という声明では、「ルークの父」が「ダースベイダー」に置き換えられた場合、表現は「観客は「帝国の逆襲」まで、ダースベイダーが実際にダースベイダーであることを知りませんでした」

プログラミングに関しては、概念は一見同じですが、多くの哲学者は、この概念がプログラミング言語で実装または継承されていることに同意しません。 しかし、一般的なプログラミングでは、これは単に、プログラムの動作に影響を与えずに、式を結果の値で置き換えることができることを意味します。 たとえば、関数plusOne(x)はxの値に1を加算するだけなので、x = 5であることがわかっている場合は、plusOneを使用する場合と同じ動作をする式で関数を値6で安全に置き換えることができます(バツ)。 しかし、外部で制御される式内に外部変数がある場合、たとえば関数plusY(x)内で関数内のYが外部制御される場合、結果の動作は同じではない可能性があります。この場合、これは参照透過ではありません表現。

参照の透明性とは何ですか? -techopediaからの定義