0x00 何为函数式编程
网上已经有好多详细的接受了,我认为比较重要的有:
- 函数是“第一等公民”,即函数和其它数据类型一样处于平等地位
- 使用“表达式”(指一个单纯的运算过程,总是有返回值),而不是“语句”(执行操作,没有返回值)
- 没有”副作用“,即不修改外部值
0x01 开始函数式编程
在此之前,请先了解PHP中的匿名函数和闭包,可以参考我写得博客
函数式编程有两个最基本的运算:合成和柯里化。
函数合成
函数合成,即把多个函数的运算合成一个函数,如
A=f(x)
B=g(x)
C=f(g(x))
那么C即是A和B的合成。
用代码表示为:
$compose = function ($f,$g){
return function ($x) use($f,$g){ //这里返回一个函数的函数,即高阶函数
近期评论