Scala函数,它将多参数匿名函数作为参数

时间:2014-09-17 10:37:50

标签: scala

我有一个名为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)

我知道我提供的函数在传递多参数函数时会毫无用处..但我只是在寻找它是如何完成的..

由于

1 个答案:

答案 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

来讨论任何函数
相关问题