我正在尝试解决S-99 的问题 12:九十九个 Scala 问题
给定问题 P10 中指定的运行长度代码列表,构建其未压缩版本。例子:
scala> decode(List((4, 'a), (1, 'b), (2, 'c), (2, 'a), (1, 'd), (4, 'e)))
res0: List[Symbol] = List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e)
我试图对列表中的元素进行模式匹配,然后使用 for 循环连接 char,但在第 5 行出现以下编译错误:
type mismatch; found : scala.collection.immutable.IndexedSeq[List[A]] required: List[A]
1 def decode[A](xs: List[(Int, A)]) : List[A] = xs match {
2 case Nil => Nil
3 case x :: xs => {
4 for {
5 i <- 1 to x._1
6 } yield (x._2) :: decode(xs)
7 }
8 }
抱歉,我开始使用 Scala。有人可以解释为什么会发生这种情况以及如何解决它吗?