IT用語集 › プログラミング › カリー化

カリー化

プログラミング Svenska → 更新: 2026-10-20

複数引数の関数を、1引数の関数の連鎖に変換すること。add(a, b)がadd(a)(b)になる。

Haskellでは全関数が自動的にカリー化されている。JS、Python、Rubyでは手動で行う。名前は論理学者ハスケル・カリーに由来する(先行者としてシェーンフィンケルの名も挙がる)。実用面では部分適用に使える。引数の一部を固定して関数を返すのである。const add5 = curry(add)(5); add5(10) // 15。ライブラリにはLodashの_.curry()やRamdaのR.curryがある。ReactでonClick={() => deleteItem(id)}と書くのも、手動の部分適用の一例である。

部分適用とは別物だ。カリー化は関数の形を変換し、部分適用は引数の値を束縛する。TypeScriptで型付きのカリー化を書くと、複雑なジェネリクスに苦労する。

← 用語集に戻る