柯里化与函数合成

作者: JaniceZD | 来源:发表于2020-07-18 17:25 被阅读0次

柯里化

柯里化(currying)指的是将一个多参数的函数拆分成一系列函数,每个拆分后的函数都只接受一个参数(unary)。

柯里化前:

//柯里化前
function add (a, b) {
  return a + b;
}

add(1, 1) // 2

改写成柯里化函数形式:

function add (a) {
  return function (b) {
    return a + b;
  }
}
// 或者采用箭头函数写法
const add = x => y => x + y;

const f = add(1);
f(2) // 3

即,拆分成了两个函数,每个函数接受一个参数。
代码中,函数 add 只接受一个参数 a,返回一个函数 f 。函数 f 也只接受一个参数 b

函数合成

const compose = f => g => x => f(g(x));

const f = compose (x => x * 4) (x => x + 3);
f(2) // 20

代码中,compose 就是一个函数合成器,用于将两个函数合成一个函数。

柯里化与函数合成有着密切的联系。前者用于将一个函数拆成多个函数,后者用于将多个函数合并成一个函数。

参考连接

相关文章

  • 柯里化与函数合成

    柯里化 柯里化(currying)指的是将一个多参数的函数拆分成一系列函数,每个拆分后的函数都只接受一个参数(un...

  • 手写简单.bind()实现

    手写一个实现柯里化的.bind() 柯里化:《函数柯里化小结》柯里化:前端开发者进阶之函数柯里化Currying ...

  • [译]JavaScript中的函数柯里化

    原文 Currying in JS 函数柯里化 函数柯里化以Haskell Brooks Curry命名,柯里化是...

  • JS_函数柯里化

    JS_函数柯里化 与函数绑定密切相关的主体是函数柯里化(function currying),它用于创建已经设置好...

  • 柯里化函数与反柯里化函数

    什么是柯里化(currying) 柯里化是一个将多元函数转化为低元函数的操作过程,可以看做是多元函数的部分求值过程...

  • 函数柯里化与反柯里化

    前言 在函数式编程中经常会遇到很多概念,比如纯函数、柯里化、高阶函数。 纯函数一个函数的返回结果只依赖于它的参数,...

  • 函数柯里化与反柯里化

  • 函数操作v1.0.0

    目录 函柯里化函数节流函数防抖 正文 函柯里化 函数节流 函数防抖

  • React基础篇之高阶函数&函数柯里化

    高阶函数 函数柯里化

  • swift 柯里化

    swift 柯里化 柯里化 1、什么是柯里化? 柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一...

网友评论

    本文标题:柯里化与函数合成

    本文链接:https://www.haomeiwen.com/subject/nldfkktx.html