在Scala中添加流

Mic*_*ael 2 scala stream

我看到至少两种不同的实现:

def add_streams(s1:Stream[Int], s2:Stream[Int]): Stream[Int] =
  Stream.cons(s1.head + s2.head, add_stream(s1.tail, s2.tail))
def add_streams(s1:Stream[Int], s2:Stream[Int]) =
  (s1 zip s2) map {case (x,y) => x + y}

我猜最后一个更有效率,因为它不是递归的.
这是对的吗?你会如何编写这样的函数?

Deb*_*ski 5

第一个版本被破坏,因为它没有检查a的结尾Stream.(对于这种情况,流不需要具有不同的长度.)鉴于此,zip版本是首选的.