curried

trait Function[X1, X2..., Xn, Y] {
  def curried: (X1) => (X2) => ... => (Xn) => Y
}

curried は、元の関数の1つ目のパラメーターを処理して残りの引数を取る関数を作成します。続いてその関数は、元の関数の2つ目のパラメーターを処理して残りの引数を取る関数を作成します。…というのが、すべてのパラメーターがなくなるまで続き、最終的な結果が計算されます。