根据scala docs,stream实现了惰性列表,其中元素仅在需要时进行评估.例;
val fibs: Stream[BigInt] = BigInt(0) #:: BigInt(1) #:: fibs.zip(fibs.tail).map(n => { n._1 + n._2 })
之后在scala repl中;
fibs(4) fibs
它会打印出来;
res1:Stream [BigInt] = Stream(0,1,1,2,3,?)
由于调用.length或.last会导致无限循环,如何以最有效的方式获得值"3"(最后计算的值)?