カリー化
カリー化(currying)
複数の引数をとる関数を1変数関数に置き換えることをカリー化
f(x, y)な二引数関数があったときに、curry(f)のように関数fを引数に取ってg(x)(y)のよう関数gが出てくるものはカリー化している
curry(f) = g
ここでgはg(x)(y) = f(x, y)であるような関数
ラムダ計算の書き方だと、f(x, y)は$ \lambda x.(\lambda y.(\lambda f(x, y)))
from: https://x.com/public_ai000ya/status/1739236250371133609?s=20
Haskell以外にもTypeScript、Python、Rubyなどカリー化ができる言語がいくつかある
部分適用
この記事が良かった
【TypeScript】カリー化・部分適用は便利だよ! #TypeScript - Qiita
関連
関数型プログラミング
確認用
Q. カリー化
Q. カリー化の例
Q. Haskellのカリー化、部分適用
Q. Rubyのカリー化、部分適用
Q. Pythonのカリー化、部分適用
メモ
カリー化記述まとめ #Python - Qiita
Rubyにおけるカリー化(Method.curry)と関数合成(<<) - やわらかテック
調査用
Google.icon カリー化(日)
Google.icon Currying(英)
Wikipedia.icon
カリー化 - Wikipedia(日)
カリー化(検索) - Wikipedia(日)
Wikipedia.icon
Currying - Wikipedia(英)
Currying(検索) - Wikipedia(英)