**部分適用(Partial Application)**とは、関数の引数の一部に値を固定し、新しい関数を生成する技法を指します。これは関数型プログラミングにおける重要な概念であり、カリー化(Currying)と密接な関係を持ちます。
基本概念
部分適用は、多引数関数に対して一部の引数だけを先に与えることにより、より少ない引数を受け取る関数を作る操作です。
例として、3つの引数を取る関数 f(a, b, c) を考えた場合に、最初の引数 a に値を与えることで、新たに g(b, c) = f(a, b, c) という関数を生成することができます。これが部分適用です。
例(JavaScript)
上記では multiply は2引数関数ですが、x = 2 を先に与えることで、1引数の関数 multiplyBy2 を定義しています。これが部分適用の一例です。
カリー化との違い
-
**カリー化(Currying)**は、関数を「一引数の関数の連鎖」に変換すること。
-
部分適用(Partial Application)は、カリー化された(またはされていない)関数の引数を一部だけ指定して新しい関数を作る操作。
利点
-
コードの再利用性が高まる:共通のパラメータを固定して新しい関数を簡潔に作成可能。
-
関数の抽象化:処理の一部を遅延して後で指定できる。
-
高階関数との相性が良い:mapやfilterなどに使いやすい。
関数型言語でのサポート
多くの関数型言語(Haskell、OCaml、Scalaなど)では、カリー化が標準のため、部分適用が自然にサポートされています。
Haskellの例
まとめ
-
部分適用は、多引数関数の一部の引数に値を与えて新しい関数を生成する技法。
-
カリー化された関数とは非常に相性が良い。
-
再利用性、抽象化、可読性の向上に役立つ。
関数型プログラミングにおいて、部分適用は柔軟で強力な表現力を提供する基本的な道具です。
生成日:2025/06/01