普通的函数:
def add(x:Int, y:Int) = x + y
柯里化后的函数,相当于返回一个匿名函数表达式。
def add(x:Int) = (y:Int) => x + y
简化写法
def add(x:Int)(y:Int) = x + y
其实柯里化,相当于从右到左依次传入参数,将传入后的匿名函数,再赋值给前一个函数,依次传入所有的参数。
柯里化可以让我们构造出更像原生语言提供的功能的代码。
有时,可以更快的做类型推断。比如:List(1,3,5,7).foldLeft("")(_ - _),可以很快通过第一个参数,推断类型为(String,Int)=>(String)
浙公网安备 33010602011771号