Scala:产生一个折叠的中间结果
发布时间:2020-12-16 09:30:41 所属栏目:安全 来源:网络整理
导读:我遇到了几次在地图操作中维护状态的问题。想象下列任务: 给定列表[Int],将每个元素映射到所有先前元素和本身的总和。 所以1,2,3变为1,1 2,1 2 3。 我想出的一个解决方案是: scala val a = 1 to 5 a: scala.collection.immutable.Range.Inclusive with
我遇到了几次在地图操作中维护状态的问题。想象下列任务:
给定列表[Int],将每个元素映射到所有先前元素和本身的总和。 我想出的一个解决方案是: scala> val a = 1 to 5 a: scala.collection.immutable.Range.Inclusive with scala.collection.immutable.Range.ByOne = Range(1,3,4,5) scala> a.foldLeft(List(0)){ case (l,i) => (l.head + i) :: l }.reverse res3: List[Int] = List(0,1,6,10,15) 但不知何故,我觉得必须有一个更简单的解决方案。 解决方法
您正在尝试计算部分和的序列。
用于计算这种累积的一般操作不是折叠,而是 至于Scala,我会给这个example scala> scanLeft(List(1,3))(0)(_ + _) res1: List[Int] = List(0,6) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |