groupMapReduce
trait Collection[A] {
def groupMapReduce[K, B](k: (A) => K)(f: (A) => B)(op: (B, B) => B): Map[K, B]
}
groupMapReduce
cria um Map
agrupando os elementos sob a chave emitida pela função k
quando aplicada a eles, aplicando a função de transformação f
aos elementos agrupados e, finalmente, reduzindo os elementos transformados usando o operador binário associativo op
.