TraversableOnce 用可变的 var result
实现了 foldLeft
。
def foldLeft[B](z: B)(op: (B, A) => B): B = {
var result = z
this foreach (x => result = op(result, x))
result
}
我知道使用递归实现foldLeft
并不实用。现在我想知道是否有可能在没有可变变量的情况下高效地实现foldLeft
。
它是否可以做到?如果不能,为什么?