Encontre as N palavras mais usadas em uma string

Em resposta a LINQ arruinou minha pergunta de entrevista favorita , aqui está minha solução (um pouco generalizada) no Scala, para estragar as coisas também para os recrutadores do Scala.

def topWords(s: String, n: Int) = {
val freqs
= s.split(' ').groupBy(identity).mapValues(_.size)
freqs
.toList.sortBy(-_._2).take(n).map(_._1)
}