我试图做一个简单的列表元素计数器,得到类似List((a,1),(b,2))的东西。但是他编译器使用_"生成关于"以下方法的神秘错误消息。我不明白这个问题是什么......
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)
答案 0 :(得分:1)
您输入错误:
chars.sorted.foldLeft(List[(Char, Int)])(counter)
你应该这样做:
chars.sorted.foldLeft(List[(Char, Int)]())(counter)
或
chars.sorted.foldLeft(List.empty[(Char, Int)])(counter)