gpt4 book ai didi

scala - 对列表中的值求和

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

我正在尝试编写一个 scala 函数,它将递归地对列表中的值求和。这是我到目前为止所拥有的:

  def sum(xs: List[Int]): Int = {
val num = List(xs.head)
if(!xs.isEmpty) {
sum(xs.tail)
}
0
}

我不知道如何将各个 Int 值求和作为函数的一部分。我正在考虑在函数 sum 中定义一个新函数,并使用一个局部变量,该变量在迭代 List 时对值进行求和。但这似乎是一种势在必行的方法。有其他方法吗?

最佳答案

您还可以避免直接使用递归,而使用一些基本的抽象来代替:

val l = List(1, 3, 5, 11, -1, -3, -5)
l.foldLeft(0)(_ + _) // same as l.foldLeft(0)((a,b) => a + b)

foldLeft相当于Python中的reduce()。还有 foldRight 也称为 accumulate(例如在 SICP 中)。

关于scala - 对列表中的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12496959/

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