這是我之前問題的後續處理。
鑑於功能add_stream(s1:Stream[Int], s2:Stream[Int]):Stream[Int]
我想代碼running_sums(s:Stream[Int]):Stream[Int]
,它返回一個新的流:s1, s1 + s2, s1 + s2 + s3, ...
Scala運行總和流
我能想到以下實現的,但它不工作,如果s
是空
def running_sums(s:Stream[Int]):Stream[Int] = Stream.cons(s.head, add_streams(s.tail, running_sums(s)))
我可以修復它如下:
def running_sums(s:Stream[Int]):Stream[Int] = if (s.isEmpty) empty else Stream.cons(s.head, add_streams(s.tail, running_sums(s)))
然而它看起來並不優雅。
您將如何實施running_sums
?