foldLeft

trait Collection[A] {
  def foldLeft[B](z: B)(op: (B, A) => B): B
}

foldLeft aplica, de izquierda a derecha, el operador binario op a cada elemento y al resultado del anterior op. La primera vez que op es aplicado es alimentado con el valor inicial z.

En colecciones vacías, esta función ni siquiera aplica op y el valor inicial z es devuelto directamente.