S-99: Ninety-Nine Scala Problemsの問題 12 を解決しようとしています。
問題 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 を始めます。なぜこれが起こっているのか、それを解決する方法を誰かが説明できますか?