PROFESSIONAL GAME CREATOR SCHOOL G学院 用語集

OFFICIAL SITEへ戻る

関数型プログラミング

 関数型プログラミングとは、プログラミングパラダイムの一つであり、関数の組合せのみによって目的を達成するプログラミングの考え方です。より細かく言えば、変数等の数値データ(状態)と計算方法(振る舞い)を分ける考え方です。そして重要なことは、状態を保持しない、ということです。この場合、関数引数が同じであれば、その他のデータは常に変わらないので必ず同じ演算結果を示すようになります(参照透過性)。すなわち、状態の維持によって起こる副作用も起こしません。感覚的には数学の関数に近く、y=f(x)、z=g(y)=g(f(x))のようにデータに対して数学的処理を繰り返すことで、プログラミングします。
 具体的な例を上げれば、通常複数の処理を繰り返す場合、ループなどの反復処理を用います。しかし、反復処理は一般的に変数によってループ回数を記録しており、状態を常に保持しています。関数型プログラミングでは、再帰処理によって繰り返しを再現し、ループ処理を行いません。再帰処理ではループ回数をカウントする変数は存在せず、関数のみによって行われます。
 オブジェクト指向プログラミングはこれとは対照的に、状態と振舞いは1つのカプセルに入れられ、オブジェクトとして捉えられます。オブジェクトの状態を常に記録しているため、同じ関数(メソッド)でもオブジェクトの状態によって結果は異なります。

用語集一覧へ戻る