Я вижу по крайней мере две разные реализации:
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}
Я полагаю, что последняя более эффективна, поскольку она не рекурсивна.
Это правильно?Как бы вы закодировали такую функцию?