我有一个名为sum的函数,它可以将一个参数匿名函数作为参数和两个整数。
def sum (f: Int => Int , a: Int, b: Int): Int =
{
if(a > b) 0 else f(a) + sum(f, a + 1, b)
}
sum((x: Int) => x , 2, 10)
我如何修改函数定义以便它可以采用多参数函数,所以我可以这样调用它:
sum((y: Int, i: Int) => y + i => x , 2, 10)
我知道我提供的函数在传递多参数函数时会毫无用处..但我只是在寻找它是如何完成的..
由于
答案 0 :(得分:3)
这很简单:
def sum (f: (Int, Int) => Int , a: Int, b: Int): Int = ???
或者是咖喱版:
def sum (f: Int => Int => Int , a: Int, b: Int): Int = ???
虽然你可以只调用f.curried