gpt4 book ai didi

list - 如何在Scala中减去列表中的两个连续元素?

转载 作者:行者123 更新时间:2023-12-03 13:43:25 25 4
gpt4 key购买 nike

我想在 Scala 中用数字减去列表中的两个连续元素。
例如:我有这个 list :

val sortedList = List(4,5,6)
我想要一个输出列表,如 diffList =(1, 1)哪里 5-4 = 16-5 = 1 .
我尝试了以下代码:
var sortedList = List[Int]()
var diffList = List[Int]()

for (i <- 0 to (sortedList.length - 1) ;j <- i + 1 to sortedList.length - 1)
{
val diff = (sortedList(j) - sortedList(i))
diffList = diffList :+ diff
}
我对 diffList =(1, 2, 1) 有以下结果但我想要 diffList = (1,1) .
这是因为for循环。它不会一次迭代两个变量(i 和 j)。

最佳答案

你不用可变性或命令式编程来解决这个问题,函数式编程让你覆盖。

def consecutiveDifferences(data: List[Int]): List[Int] =
if (data.isEmpty) List.empty
else data.lazyZip(data.tail).map {
case (x, y) => y - x
}
正如我常说的, Scaladoc是你的 friend 。
(另外,作为一个建议,学习函数式编程的最好方法是禁止自己使用可变性)

关于list - 如何在Scala中减去列表中的两个连续元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65972252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com