def addStream(s1: LazyList[Int], s2: LazyList[Int]): LazyList[Int] = { s1 zip s2 map (p => p._1 + p._2) } def fibonacci(): LazyList[Int] = { 0 #:: 1 #:: addStream( fibonacci(), fibonacci().tail ) } fibonacci().take(10).toList