Miałem dość dużą listę liczb. Musiałem nałożyć na nich jakąś operację, a następnie wziąć tylko te wyniki, które spełniają pewien warunek. Lista jest sekwencyjna, więc gdy znajdę numer, który nie spełnia warunku, mogę przestać szukać.Dziwny wyjątek podczas korzystania z .view na liście
Chciałem uniknąć robi zbyt wiele obliczeń, więc przeniósł się jak w poniższym przykładzie:
List(1,2,3,4,5).view.map(2 *).takeWhile(_ < 8)
Ale to daje mi wyjątek:
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)
Korzystanie Scala 2.9.0.1 (tak samo zachowanie z 2.9.1). Co jest nie tak?
Działa dobrze z 2.8 –