I had quite a big list of numbers. I needed to apply some operation on them, then take only those results that satisfy some condition. The list is sequential, so once I find the number that does not satisfy the condition, I can stop looking.
I wanted to avoid doing too much computation, so I moved on like in this example:
List(1,2,3,4,5).view.map(2 *).takeWhile(_ < 8)
Looks like a bug. (File a bug report, if it's not already reported and/or fixed!)
In the meantime, you can use iterator as a workaround for this particular code:
List(1,2,3,4,5).iterator.map(2 *).takeWhile(8 >).toList
.toList if you're happy to end up with an iterator).