カリー化
(A, B) => Cといった複数引数を取る関数を(A) => (B) => Cのように「関数を返す関数」の形に分解すること
カリー化されているとmapやfilterに入れやすくなる
code:scala
val f = (m) => (n) => n * m
Seq(1,2,3,4,5).map(f(5)) // 事前に一部の設定だけ埋めておける。mapは1引数関数しか取らないのでこれで調整できる
とはいえScalaだとメソッドを穴開きにできるので同じことが簡単にやれる code:scala
def f(n: Int, m: Int) = n * m
Seq(1,2,3,4,5).map(f(_, 5))