, , , - .
JVM, (, , Function1, Function2 ..).
,
def sum(x: Int)(y: Int)(z: Int) = x + y + z
val sum = (x: Int) => (y: Int) => (z: Int) => x + y + z
, , - Function1[Int, Function1[Int, Function1[Int, Int]]]
, , (, eta-expand).
, , , , , , .
_ eta-, , .
scala , :
def sum(x: Int)(y: Int)(z: Int) = x + y + z
val sumFunction: Int => Int => Int => Int = sum
,
def sum(x: Int, y: Int) = x + y
List(1,2,3).reduce(sum)
, .. , .
, scala eta-: fooobar.com/questions/167436/...
, , , .