Scala中运行总和的流
发布时间:2020-12-16 18:23:42 所属栏目:安全 来源:网络整理
导读:这是我上一个问题的后续行动. 给定函数add_stream(s1:Stream [Int],s2:Stream [Int]):Stream [Int] 我想编写running_sums(s:Stream [Int]):Stream [Int],它返回一个新流:s1,s1 s2,s1 s2 s3,… 我可以想到以下实现,但如果s为空则它不起作用 def running
这是我上一个问题的后续行动.
给定函数add_stream(s1:Stream [Int],s2:Stream [Int]):Stream [Int] 我想编写running_sums(s:Stream [Int]):Stream [Int],它返回一个新流:s1,s1 s2,s1 s2 s3,… 我可以想到以下实现,但如果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,running_sums(s))) 然而它看起来并不优雅. 你将如何实现running_sums? 解决方法
有一个像这样的东西的库调用,称为scanLeft
s.scanLeft(0)(_+_).tail (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |