【发布时间】:2018-12-03 10:14:04
【问题描述】:
如果您在 Scala 中有一个 Integer 列表,并且您想遍历它并对每两个具有相同值的邻居求和并将其作为列表返回,您将如何做到这一点?
例如:
List(4, 4, 2, 6) => List(8, 2, 6)
我对 Scala 完全陌生,但我可以想象模式匹配或映射可能很有用。
def sumSameNeighbours: List[Int] => List[Int] = {
ls match {
case l1::l2:ls => l1 == l2
}
}
这是我能想到的。
编辑:我将如何更改代码以便从右到左而不是从左到右迭代?
所以 f.e.应该是:
List(2, 2, 2, 6, 4) => List(2, 4, 6, 4)
而不是
List(2, 2, 2, 6, 4) => List(4, 2, 6, 4)
【问题讨论】:
-
List(4, 4, 4, 2, 6)的预期结果是什么? -
那就是 List(8, 4, 2, 6)
-
List(2, 4, 4, 2, 6)怎么样?它是不变的,还是产生List(2, 8, 2, 6)?再举几个例子会有帮助。 -
是的,那就是
List(2, 8, 2, 6)
标签: scala list recursion sum pattern-matching