カリー化
k変数関数を
1変数を受け取って
k-1変数関数を返す
高階関数にすること
f(x,y) => x^2+y^2;
普通の 2 変数関数
f(x) => (y) => x^2+y^2;
1 変数を受け取って 1 変数を返す高階関数
f(x)(y)
というふうに呼び出せる
ここまで来ると関数呼び出しにカッコが要らないのではないかと考える人が出てくる
\lambda計算ではカリー化の意識をせずにカリー化を行える
\lambda xy.(xy) = \lambda x.(\lambda y.(xy))というふうにできる
前者を.(\lambda\cdots)を省略したものとみなして書き換えるため、カリー化という意識はない。
カッコを補って読みやすくしようぐらいのノリ
もしかして