aggregate
trait Collection[A] {
def aggregate[B](z: => B)(seqop: (B, A) => B, combop: (B, B) => B): B
}
aggregate aplica o operador binário seqop a partes de elementos e depois combine os resultados intermediários com o operador binário combop.
O valor z é o elemento neutro para o tipo B e pode ser usado várias vezes.