У меня был довольно большой список чисел. Мне нужно было применить к ним некоторые операции, а затем взять только те результаты, которые удовлетворяют некоторому условию Список является последовательным, поэтому, как только я найду число, которое не удовлетворяет условию, я перестану искать.
Я хотел избежать слишком большого количества вычислений, поэтому я пошел дальше, как в этом примере:
List(1,2,3,4,5).view.map(2 *).takeWhile(_ < 8)
Но это дает мне исключение:
java.lang.UnsupportedOperationException: SeqViewM(...).newBuilder
at scala.collection.TraversableViewLike$class.newBuilder(TraversableViewLike.scala:69)
at scala.collection.SeqViewLike$$anon$3.newBuilder(SeqViewLike.scala:77)
at scala.collection.IterableLike$class.takeWhile(IterableLike.scala:139)
at scala.collection.SeqViewLike$$anon$3.takeWhile(SeqViewLike.scala:77)
at scala.collection.SeqViewLike$$anon$3.takeWhile(SeqViewLike.scala:77)
Использование Scala 2.9.0.1 (то же поведение с 2.9.1). Что здесь не так?