我试过这个:
val s1:Stream[Int]=1 #:: 0 #:: 1 #:: 1 #:: (s1.tail.tail.tail,s1.tail.tail).zipped.map{(c,d) => c + d}.toStream
但是
s1(5)
引发一个stackoverflow...
我成功地用 2 个参数编写了正确的定义:
val s2:Stream[Int]=1 #:: 0 #:: 1 #:: 1 #:: (s2.tail.tail.tail.zip(s2.tail.tail)).map{n=> n._1+n._2}
但我将来会想要添加超过 2 个列表,这就是为什么我希望能够使用“zipped”而不是“zip”。
谢谢
最佳答案
Stream.iterate((1, 0, 1))({case (a, b, c) => (b, c, a + b)}).map(_._3) 怎么样
?
关于scala - 如何在 Scala 中创建提供 f(n)=f(n-2)+f(n-3) 的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31204708/