加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读