Perché non posso riscriverefunzioni curry Scala parzialmente applicate
println(abc.foldRight(0)((a,b) => math.max(a.length,b)))
in
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)))
}
}
a
println(abc.foldRight(0)(math.max(_.length,_)))
? scala
rese interprete
/path/to/Main.scala:4: error: wrong number of parameters; expected = 2
println(abc.foldRight(0)(math.max(_.length,_)))
^
one error found
che non è abbastanza descrittivo per me. Non risulta che lambda prende due parametri uno dei quali viene chiamato per il metodo .length, come in abc.map(_.length)
?
Utilizzando due _ come sarà il compilatore a sapere quale parametro sostituire con il primo _ e il secondo da a, b? –
Repsectivly, penso –