reduceLeft

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

reduceLeft aplica, da esquerda para a direita, o operador binário op para cada elemento e o resultado da anterior op. A primeira vez que op é aplicada, ela é alimentada com os dois primeiros elementos.

Nas coleções com um único elemento, esse elemento é retornado e o operador binário op não é aplicado.

Em coleções vazias, essa função lança uma exceção UnsupportedOperationException.