我试图想出一个简单的函数,它接受一个函数和整数列表,并在列表中的每个整数上应用函数 -
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)
我在Application does not take parameters
上遇到编译错误values.tail
,我是函数式编程和scala的初学者,所以任何指针或答案都可以理解这一点。
答案 0 :(得分:3)
这行代码有两个问题。
IntOps(f(values.head)(values.tail))
IntOps
采用两个参数列表,每个参数列表中包含一个参数。Int => Int
,这是f
的内容,但是您正在调用f
,它返回{{1} }},这不是Int
所要求的。