2016-03-22 6 views
0

teilweise angewandte Funktion als Objekt

def f(i:Int)(j:Int) = i + j 

Lassen und so

f(1) _ 
Int => Int = <function1> 

jedoch

val f: (Int)(Int) => Int = (a:Int)(b:Int) => a + b // wrong 

nämlich error: ';' expected but '(' found. Wie val f erklären?

Antwort

2

Ist das wonach Sie gesucht haben?

scala> val f: Int => Int => Int = a => b => a + b 
f: Int => (Int => Int) = <function1> 

scala> f(1) 
res7: Int => Int = <function1> 

scala> f(1)(2) 
res8: Int = 3 
+0

Ja, genau; es sieht ziemlich nach Haskell aus :) Danke! – elm

Verwandte Themen