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.