假如说我有一个函数,这个函数只有一个参数,这个参数是只有一个参数的函数,比如说
def f1(p: (Int) => String) { println(p(5)) } def p1(x: Int): String = { (x + 10).toString } //执行函数 f1(p1)
这时我们另外一个函数是这样的
def p2(x:Int,y:Int):String={ (x+y).toString }
这种情况下,f1将无法调用p2,参数不匹配。但如果将p2改造一下呢?改造好的函数我们设成p3
def p3(x:Int)(y:Int):String={ (x+y).toString }
那么f1可以采用以下方式来调用p3函数
f1(p3(10))
或者这么来写好理解
val p4:Int=>String = p3(10)
f1(p4)
我们可以利用柯里化的函数创造一个偏应用函数。
原文:http://www.cnblogs.com/luckuan/p/5243089.html