Scala Karte und/oder groupby-Funktionen

Ich bin neu in Scala und ich bin versucht, herauszufinden, einige scala-syntax.

Also ich habe eine Liste von strings.

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

Ich habe eine Funktion, die liefert eine Liste von Paaren enthält, die Konsonanten und Vokale zählt pro Wort:

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

So, zum Beispiel:

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

Will ich jetzt eine Liste von Wörtern und gruppieren Sie Sie durch zählen Unterschriften:

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")

Bin ich denk ich benutzen müssen, GroupBy, dies zu tun:

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

Ich habe gelesen, die scala-api für die Karte.GroupBy und sehen, dass F steht für Diskriminator-Funktion und K ist die Art von Schlüsseln, die Sie erhalten möchten. Also versuchte ich Folgendes:

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

Jedoch, scala nicht wie diese syntax. Ich habe versucht, einige Beispiele für groupBy und nichts scheint zu helfen mir mit meinem Anwendungsfall. Irgendwelche Ideen?

InformationsquelleAutor user1772790 | 2012-10-25

Schreibe einen Kommentar