Scala carte et/ou grouper les fonctions

Je suis nouveau à la Scala et je suis à essayer de comprendre certains scala de syntaxe.

J'ai donc une liste de chaînes de caractères.

wordList: List[String] = List("this", "is", "a", "test")

J'ai une fonction qui retourne une liste de paires qui contient consonnes et des voyelles compte par mot:

def countFunction(words: List[String]): List[(String, Int)]

Ainsi, par exemple:

countFunction(List("test")) => List(('Consonants', 3), ('Vowels', 1))

Je veux maintenant prendre une liste de mots et de les regrouper par comptage des signatures:

def mapFunction(words: List[String]): Map[List[(String, Int)], List[String]]

//using wordList from above
mapFunction(wordList) => List(('Consonants', 3), ('Vowels', 1)) -> Seq("this", "test")
                         List(('Consonants', 1), ('Vowels', 1)) -> Seq("is")
                         List(('Consonants', 0), ('Vowels', 1)) -> Seq("a")

Je pense que je dois utiliser GroupBy pour ce faire:

def mapFunction(words: List[String]): Map[List[(String, Int)], List[String]] = { 
    words.groupBy(F: (A) => K)
}

J'ai lu la scala api pour la Carte.GroupBy et de voir que F représente le discriminant de la fonction et K est le type de touches que vous voulez retourner. J'ai donc essayé ceci:

    words.groupBy(countFunction => List[(String, Int)]

Cependant, scala n'aime pas cette syntaxe. J'ai essayé de regarder quelques exemples pour groupBy et rien ne semble pouvoir m'aider avec mon cas d'utilisation. Des idées?

OriginalL'auteur user1772790 | 2012-10-25