2017年的第一天,我坐在独墅湖边,写下这篇文章。
独墅湖.jpeg
在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:
接受一个或多个函数作为输入
输出一个函数
java世界迎来新的一等公民——函数
java 8引入了函数式编程。函数式编程重点在函数,函数变成了Java世界里的一等公民,函数和其他值一样,可以到处被定义,可以作为参数传入另一个函数,也可以作为函数的返回值,返回给调用者。利用这些特性,可以灵活组合已有函数形成新的函数,可以在更高层次上对问题进行抽象。
使用高阶函数之前的求和、求平方和、求立方和的写法:
public class TestHighOrderFunction {
public static int identity(int x) {
return x;
}
public static int sum_integers(int a, int b) {
int sum = 0;
for (int i = a; i <= b; i++) {
sum += identity(i);
}
return sum;
}
public static int square(int x) {
return x * x;
}
public static int sum_square(int a, int b) {
int sum = 0;
for (int i = a; i <= b; i++) {
sum += square(i);
}
return sum;
}
public static double cube(int x) {
return x * x * x;
}
public static int sum_cubes(int a, int b) {
int sum = 0;
for (int i = a; i <= b; i++) {