def sum(f: Int => Int)(a: Int)(b: Int): Int = {
@annotation.tailrec
def loop(n: Int, acc: Int): Int = {
if (n > b) {
println(s"n=${n},acc=${acc}")
acc
} else {
println(s"n=${n},acc=${acc}")
loop(n + 1, acc + f(n))
}
}
loop(a, 0)
}
sum(x => x)(1)(5)
sum(x => x*x)(1)(5)
//使用通配符
val sumSqure = sum(x => x * x)_
sumSqure(1)(5)
=>可以理解为映射关系
柯里化和偏应用函数