本文へスキップ

カリー化とは?

かりーか

カリー化とは、複数引数をとる関数を、引数を一つずつ受け取る関数の連鎖に変換するプログラミング技法です。

カリー化(Currying)は、複数引数をとる関数を、引数を一つだけ受け取り「残りの引数を受け取る新しい関数」を返す関数の連鎖に変換する手法です。数学者・論理学者のハスケル・カリーにちなんで名付けられました。

例えば、add(x, y) = x + y という2引数関数をカリー化すると、curriedAdd(x)(y) = x + y という形になります。curriedAdd(3) を呼ぶと「3を加える関数」が返り、それに(4)を渡すと7が得られます。

カリー化の重要な利点は部分適用(partial application)との組み合わせです。引数を途中まで渡すことで専用化された関数を簡単に作れます。

  • コードの再利用性が高まる
  • 関数合成と相性がよく、パイプライン処理が書きやすくなる
  • 副作用を持たない純粋関数型スタイルの記述が促進される
  • 引数の遅延評価や依存性注入の実装に活用できる

Haskell では関数が標準でカリー化されており、Scala・F#・JavaScript(RamdaやFP-TSなどのライブラリ)でも広く用いられます。関数型プログラミングの核心概念の一つであり、高階関数や関数合成と組み合わせることで強力な抽象化を実現します。

使い方・例文

JavaScriptで const add = x => y => x + y; と定義し、const add5 = add(5); として「5を加える関数」を部分適用で生成する場面などで使われます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語