求解Stream.zip
mwei
2010-12-22
lazy val fib:Stream[Int]= Stream.cons(0,Stream.cons(1,fib.zip(fib.tail).map(p=>p._1+p._2))) fib.take(10).print output: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, empty 读Programming Scala动物世界那本,对zip不知其原理,求圈子里的网友给予详细说明。Orz |
|
night_stalker
2010-12-23
集合类的 zip:
a: [a1, a2, a3, ...] b: [b1, b2, b3, ...] a zip b: [(a1,b1), (a2,b2), (a3,b3), ...] a zip a.tail: [(a1,a2), (a2,a3), (a3,a4), ...] |
|
mwei
2010-12-23
night_stalker 写道 集合类的 zip:...
一目了然,谢谢ns,原来其他语言里早就有了zip函数。 zip有拉链之意,相同位置之上的会成对出现(不过拉链错开了),任何一边长了都不会继续拉上去,很有意思。 |