val x = for(i <- 1 to 3) yield i x match { case 1 :: rest =>... // compile error }
constructor cannot be instantiated to expected type; found : collection.immutable.::[B] required: scala.collection.immutable.IndexedSeq[Int]
Это та же проблема, что и MatchError, когда match получает IndexedSeq, но не LinearSeq .
Вопрос в том, как это сделать правильно? Добавление
.toList
везде кажется неправильным. И создание собственного экстрактора, который обрабатывает каждыйSeq
(как описано в ответе на другой вопрос ), приведет к беспорядку, если все будут это делать...Я предполагаю, что вопрос в том, почему я не могу повлиять на тип возвращаемого значения последовательности, или :почему такой обобщенный
Seq
экстрактор не является частью стандартной библиотеки?