Scala`Application does not take parameters`编译错误

Scala `Application does not take parameters` compile error

我想想出一个简单的函数,它接受一个函数和一个整数列表,并将该函数应用于列表中的每个整数 -

    def IntOps(f: Int => Int)(values: List[Int]): Int = {
     if(values.isEmpty) 0
     //Getting "Application does not take parameters" in values.tail
     else IntOps(f(values.head)(values.tail))
    }
    IntOps(x=> x+x)(List(1, 2, 30)

我在 values.tail 上遇到编译器错误 Application does not take parameters,我是函数式编程和 Scala 的初学者,所以任何理解这方面的指示或答案都很好。

这行代码有两个问题。

IntOps(f(values.head)(values.tail))
  1. 括号错误 - IntOps 采用两个参数列表,每个参数列表中有一个参数。
  2. 第一个参数的类型错误 - 第一个参数需要是一个函数 Int => Int,这是 f 的意思,但您正在调用 f,[=25] =] 一个 Int,这不是 IntOps 所要求的。