【发布时间】:2021-09-20 08:47:05
【问题描述】:
假设我有一个列表:
val list = List(1, 3, 4, 5, 6)
如何将每个元素与下一个元素相加以创建对的求和值列表?在我的示例中,我想得到:
List(4, 7, 9, 11)
我应该编写哪些操作来以函数方式执行此操作?
【问题讨论】:
标签: list scala functional-programming
假设我有一个列表:
val list = List(1, 3, 4, 5, 6)
如何将每个元素与下一个元素相加以创建对的求和值列表?在我的示例中,我想得到:
List(4, 7, 9, 11)
我应该编写哪些操作来以函数方式执行此操作?
【问题讨论】:
标签: list scala functional-programming
好的,经过一番搜索,我找到了sliding(...) 函数:
val list = List(1, 3, 4, 5, 6)
list.sliding(2).toSeq.map(_.sum) //List(4, 7, 9, 11)
这很好用
【讨论】:
(list lazyZip list.tail).map { case (x, y) => x + y }
.tail 将崩溃。如果你想返回一个空列表,你可以使用.drop(1)。