У меня есть следующая функция, которая выполняет Tailrec и пытается подсчитать количество символов в заданной строке:
@scala.annotation.tailrec
def letterCount(remaining: Seq[Char], acc: Map[Char, Int]): Map[Char, Int] = remaining match {
case Nil => acc
case x :: Nil => acc ++ Map(x -> 1)
case x :: xs =>
letterCount(xs.filter(_ == x), acc ++ Map(x -> xs.count(_ == x)))
}
letterCount("aabbccd".toSeq, Map.empty)
По какой-то странной причине она завершается ошибкой:
scala.MatchError: aabbccd (of class scala.collection.immutable.WrappedString)
at $line87.$read$$iw$$iw$.letterCount(<pastie>:14)
at $line87.$read$$iw$$iw$.liftedTree1$1(<pastie>:23)
at $line87.$read$$iw$$iw$.<init>(<pastie>:22)
at $line87.$read$$iw$$iw$.<clinit>(<pastie>)
at $line87.$eval$.$print$lzycompute(<pastie>:7)
at $line87.$eval$.$print(<pastie>:6)
at $line87.$eval.$print(<pastie>)
Я не мог выяснить, в чем может быть проблема!Есть идеи?