Scala-Scanleft,在迭代中返回值,而无需在下一回合中使用它

时间:2018-09-19 09:13:19

标签: scala list api foldleft

我有一个清单

我想做的是

def someRandomMethod(...): ... = {
  val list = List(1, 2, 3, 4, 5)
  if(list.isEmpty) return list
  list.differentScanLeft(list.head)((a, b) => {
     a * b
  })
}

返回 List(1、2、6、12、20),而不是List(1、2、6、24、120)

有这样的API吗?

谢谢你, 科斯米尔

2 个答案:

答案 0 :(得分:0)

您可能想使用android:id="@+id/navigation"

BottomNavigationView

答案 1 :(得分:0)

scan并不是真正正确的方法,您想使用sliding生成相邻值对的列表:

(1::list).sliding(2).map(l => l(0)*l(1))

更一般地说,使用scan时有时需要将数据传递到下一个迭代。对此的标准解决方案是使用元组(state, ans),然后最后用另一个map过滤掉状态。

相关问题