fold
trait Collection[A] {
def fold(z: A)(op: (A, A) => A): A
}
fold aplica el operador binario op a pares de elementos de esta colección hasta que el resultado final es calculado.
El elemento neutro z puede ser utilizado múltiples veces.