純粋関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/06 04:20 UTC 版)
「関数型プログラミング」の記事における「純粋関数」の解説
参照透過性を順守した関数は、純粋関数(英語版)と呼ばれる。これは機能と言うよりも、関数型プログラミングが目指すべきコンセプトに近い。純粋関数は、同じ引数から常に同じ返り値が算出されるという参照透過を保証し、その計算が外部状態の影響を受けず、かつ外部状態に影響を与えないという「副作用の排除」を保証している。外部状態はグローバル変数と読み替えてもよい。純粋関数はローカル変数などの内部状態も持たない。 純粋関数とは、参照透過な計算式と可変な状態を完全に分離する機構であり、参照透過な計算式は不変な状態としての定数群をしばしば内包している。この概念はinvariantやイミュータブルにも繋がっている。コンパイル最適化の対象としても適当であり、純粋関数はコードの最適化で重要な役割を果たす。 純粋関数は、ミュータブルな状態を参照透過に処理するためのアプローチでもある。純粋関数は引数から状態を扱い、遷移させた状態を返り値にする。その参照透過性の維持ロジックには線形論理などが適当になる。状態の構造化には関連性論理などが適当になる。それらの部分構造論理をより最適化したデザインパターンには圏論由来のモナドがある。
※この「純粋関数」の解説は、「関数型プログラミング」の解説の一部です。
「純粋関数」を含む「関数型プログラミング」の記事については、「関数型プログラミング」の概要を参照ください。
- 純粋関数のページへのリンク