flatMap

trait Collection[A] {
  def flatMap(f: (A) => Collection[B]): Collection[B]
}

flatMap cria uma coleção aplicando a função f a cada elemento e usando os subelementos resultantes como elementos da nova coleção.