【发布时间】:2014-10-29 00:27:20
【问题描述】:
List#foldLeft,为什么是下面的Scala 2.11.2代码:
scala> List(1,2,3).foldLeft(2) _ + _
res0: String => String = <function1>
返回 <function1>?
另外,为什么下面的结果等于<function1>5?
scala> res0("5")
res2: String = <function1>5
【问题讨论】:
-
foldLeft 和 foldRight 是柯里化函数。它们在两组括号中使用两个参数(z 和 f)而不是一组:
def foldLeft[B](z: B)(f: (B, A) => B): B其中 z 充当 f 的种子。
标签: scala