alt*_*han 5 scala stream memoization lazy-evaluation scala-streams
根据scala docs,stream实现了惰性列表,其中元素仅在需要时进行评估.例;
val fibs: Stream[BigInt] = BigInt(0) #:: BigInt(1) #:: fibs.zip(fibs.tail).map(n => {
n._1 + n._2
})
Run Code Online (Sandbox Code Playgroud)
之后在scala repl中;
fibs(4)
fibs
Run Code Online (Sandbox Code Playgroud)
它会打印出来;
res1:Stream [BigInt] = Stream(0,1,1,2,3,?)
由于调用.length或.last会导致无限循环,如何以最有效的方式获得值"3"(最后计算的值)?
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |