我试过这个:
val s1:Stream[Int]=1 #:: 0 #:: 1 #:: 1 #:: (s1.tail.tail.tail,s1.tail.tail).zipped.map{(c,d) => c + d}.toStream但
s1(5)引发堆栈溢出...
我用两个参数成功地写出了正确的定义:
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”。
谢谢
发布于 2015-07-03 18:45:34
那Stream.iterate((1, 0, 1))({case (a, b, c) => (b, c, a + b)}).map(_._3)呢?
发布于 2015-07-03 18:52:52
看起来这段代码正确地生成了你的序列:
val s:Stream[Int]=1 #:: 0 #:: 1 #:: 1 #:: (s.tail zip s.tail.tail).map {t => t._1 + t._2}例如:
s(7) = 3
s(8) = 4
s(10) = 7https://stackoverflow.com/questions/31204708
复制相似问题