这是Kotlin相当于在Coursera上从Scala MOOC获取的功能。它返回一个函数,该函数在范围(a..b)
上应用给定的映射器(f)fun sum(f: (Int) -> Int): (Int, Int) -> Int {
fun sumF(a: Int, b: Int): Int =
if (a > b) 0
else f(a) + sumF(a + 1, b)
return sumF
}
答案 0 :(得分:3)
答案 1 :(得分:2)
您必须使用::
将其表达为函数引用。
fun sum(f: (Int) -> Int): (Int, Int) -> Int {
fun sumF(a: Int, b: Int): Int =
if (a > b) 0
else f(a) + sumF(a + 1, b)
return ::sumF
}