爲什麼我不能改寫Scala的部分應用咖喱功能
println(abc.foldRight(0)((a,b) => math.max(a.length,b)))
在
object Main {
def main(args : Array[String]) {
val abc = Array[String]("a","abc","erfgg","r")
println(abc.foldRight(0)((a,b) => math.max(a.length,b)))
}
}
到
println(abc.foldRight(0)(math.max(_.length,_)))
? scala
口譯員收益率
/path/to/Main.scala:4: error: wrong number of parameters; expected = 2
println(abc.foldRight(0)(math.max(_.length,_)))
^
one error found
這對我來說不夠好。是不是生成的lambda需要兩個參數,其中一個被調用.length方法,如abc.map(_.length)
?
使用兩個_將如何知道哪個參數替換第一個_和第二個來自a,b? – 2012-02-24 10:57:53
Repsectivly,我認爲 – 2012-02-24 11:08:08