В соответствии с потоком scala docs реализуются ленивые списки, где элементы оцениваются только тогда, когда они необходимы. Пример;Scala как получить последнее расчетное значение потока?
val fibs: Stream[BigInt] = BigInt(0) #:: BigInt(1) #:: fibs.zip(fibs.tail).map(n => {
n._1 + n._2
})
После этого в scala repl;
fibs(4)
fibs
распечатать;
res1: Поток [BigInt] = поток (? 0, 1, 1, 2, 3,)
Поскольку вызов .length или .last причин бесконечного цикла, как можно получить значение " 3 "(последнее расчетное значение) наиболее эффективным способом?