val x = for(i <- 1 to 3) yield i
x match {
case 1 :: rest => ... // compile error
}
コンストラクターを期待される型にインスタンス化できません。見つかった: collection.immutable.::[B] 必須: scala.collection.immutable.IndexedSeq[Int]
これは、 match が IndexedSeq を受け取っても LinearSeq を受け取っていない場合の MatchErrorと同じ問題です。
問題は、それを正しく行う方法です。どこにでも追加する.toList
のは正しくないようです。そして、Seq
(他の質問の回答で説明されているように)すべてを処理する独自のエクストラクターを作成すると、誰もがそれを行うと混乱につながります...
問題は、シーケンス内包表記の戻り値の型に影響を与えられないのはなぜですか、または、そのような一般化されたSeq
エクストラクタが標準ライブラリの一部ではないのはなぜですか?