首页>ASP.NET技巧教程>文章详情

Scala求和例子

3/8/2017
19471
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)

=>可以理解为映射关系 柯里化和偏应用函数