定义
A higher order function is a function that takes a function as an argument, or returns a function 高阶函数:包含函数参数或者返回值是一个函数的函数
示例1
上面的代码中显示了函数是可以传入其他函数中的。其中applyOperation 函数可以将任意的 opt 函数应用于前两个参数
示例2
再来看另一个例子:
上面的代码中,add函数接受一个参数,并返回另一个接受第二个参数并把他们加起来的函数
示例3
再来看一个例子:假设需要打印住在美国的人员名单。
一开始的命令式代码可能是这样的:
如果我们还需要打印其他国家的人。通过高阶函数,可以很好抽象出应用于每个人的操作,那就是控制台的打印逻辑。
这里我们给高阶 printPeople 提供任何action函数:
基于函数的高阶特性,我们还可以做如下的重构:
通过使用高阶函数,开始呈现出声明式的模式。表达式清晰地描述了程序需要做的事情
我们需要拥抱函数式编程的这种心态,你需要告诉程序做什么,而不关系怎么做。
我们把需要做的事情,一件一件拆分开用函数来表达,最后通过高阶函数将每一小件事情组合起来,完成整个项目。
而不是命令式地告诉程序先做什么,后做什么