请编写一个用Scala高阶函数,实现任意个连续整数的“连加和”、“平方和”。
时间: 2024-09-30 18:16:14 浏览: 50
在Scala中,我们可以利用高阶函数以及lambda表达式来实现这样的功能。这里是一个简单的例子,定义两个函数`sumOfNumbers`和`squareSumOfNumbers`,它们分别计算给定整数序列的和与平方和。
```scala
// 定义一个接受函数作为参数的高阶函数,计算连续整数的和
def sum(numbers: (Int => Int) -> (Int, Int)): Int = {
val start = numbers._1
var sum = start
for (_ <- 1 until numbers._2) {
sum += start + _
start += 1
}
sum
}
// 同样,定义一个计算平方和的高阶函数
def squareSum(numbers: (Int => Int) -> (Int, Int)): Int = {
val start = numbers._1
var squareSum = start * start
for (_ <- 1 until numbers._2) {
squareSum += (start + _) * (start + _)
start += 1
}
squareSum
}
// 使用示例
val range = (1, 5) // 计算从1到4的连续整数的和与平方和
println(s"连加和: ${sum(sumOfNumbers(range))}")
println(s"平方和: ${squareSum(squareSumOfNumbers(range))}")
阅读全文