高阶函数以及函数柯里化

高阶函数以及函数柯里化

高阶函数以及函数柯里化

高阶函数:两种情况

  • 若 A 函数,接收的参数是一个参数,那么 A 就可以称之为高阶函数
  • 若 A 函数,调用的返回值依然是一个函数,那么 A 就可以称之为高阶函数

常见的高阶函数

  • promise
  • setTimeot
  • 数组方法:arr.map   arr.filter   arr.reduce

函数的柯里化** (Curry)**

–通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。(典型案例: promise)

>> 部分函数应用 vs 柯里化

经常有人搞不清柯里化和部分函数应用 ( Partial Function Application ),经常把他们混为一谈,其实这是不对的,在维基百科里有明确的定义,部分函数应用强调的是固定一定的参数,返回一个更小元的函数。通过以下表达式展示出来就明显了:

1
2
3
4
// 柯里化
f(a,b,c) → f(a)(b)(c)
// 部分函数调用
f(a,b,c) → f(a)(b,c) / f(a,b)(c)

因此:我们可以用高级柯里化去实现部分函数应用,但是柯里化不等于部分函数应用


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!