groupMap

trait Collection[A] {
  def groupMap[K, B](f: (A) => K)(g: (A) => B): Map[K, Collection[B]]
}

groupMap crea un Map agrupando los elementos bajo la clave que emiten cuando se les es aplicada la función f y luego son transformados mediante la función g.