2016-09-06 3 views
0

Ich versuche, einen einfachen Zähler von Listenelementen zu erstellen und etwas wie List ((a, 1), (b, 2)) zu erhalten. Aber der Compiler erzeugt kryptische Fehlermeldungen über "folgende Methoden mit _". Ich weiß nicht versteht, was ist das Problem ...Zähler mit foldLeft auflisten

def counter(acc: List[(Char, Int)], c: Char): List[(Char, Int)] = 
     acc match { 
     case Nil => List((c, 1)) 
     case (x, n) :: xs => if (c == x) (x, n+1) :: xs else (c, 1) :: (x, n) :: xs 
     } 

    chars.sorted.foldLeft(List[(Char, Int)])(counter) 

Antwort

1

Sie haben einen Fehler in:

chars.sorted.foldLeft(List[(Char, Int)])(counter) 

stattdessen sollten Sie tun:

chars.sorted.foldLeft(List[(Char, Int)]())(counter) 

oder

chars.sorted.foldLeft(List.empty[(Char, Int)])(counter) 
+0

Guter Fang! Das hat es behoben :) – Dmitri