美文网首页前端
柯里化函数实现

柯里化函数实现

作者: 企鹅的技术笔记 | 来源:发表于2019-03-12 16:57 被阅读0次

柯里化函数实现

柯里化函数的实现实质上是一个收集参数的过程, 也许柯里化的内涵及应用场景理解起来比较困难, 但是实现是相对简单的

const curry = (fn) => {
  /**
   * 
   * @param {number} rest_num 剩余需要收集的参数数目 
   * @param {array} args_list 参数列表
   */
  const _c = (rest_num, args_list) => {
    if (rest_num <= 0) {
      return fn(...args_list);
    }
    return (...args) => _c(rest_num - args.length, [...args_list, ...args])
  }
  return _c(fn.length, []);
}

// example
const plus = (a, b, c, d) => a + b + c + d;
const curry_plus = curry(plus);
curry_plus(1, 2, 3, 4) // 10
curry_plus(1)(2, 3, 4) // 10
curry_plus(1)(2)(3, 4) // 10

如上述示例, curry函数会返回一个 _c, 在使用者每一次调用 curry_plus 的时候会让 _c 传入的 rest_num 都减去相应的值, 当不再需要收集参数时, 就返回结果

相关文章

  • 手写简单.bind()实现

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

  • 函数柯里化

    函数柯里化,实现累加。

  • js柯里化

    柯里化函数的实现hyCurrying

  • 函数-柯里化

    面试题-- 函数柯里化怎么实现

  • 柯里化函数实现

    柯里化函数实现 柯里化函数的实现实质上是一个收集参数的过程, 也许柯里化的内涵及应用场景理解起来比较困难, 但是实...

  • JS模拟实现bind,call,apply

    call apply bind 简单实现 函数柯里化的实现 构造函数的实现 ES6实现 结合实现

  • JavaScript函数柯里化

    概念 函数柯里化是指将一个多参数的函数转化成多个一个参数调用的函数的过程。 实现 柯里化的实现方式很多,如下: 此...

  • Swift | 柯里化实现一个函数指定加数

    柯里化简介 柯里化指的是从一个多参数函数变成一连串单参数函数的变换 函数演示 代码实现 补充 这种方式是柯里化的一...

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

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

  • 柯里化和自动柯里化函数实现

    柯里化定义 维基百科定义 是把接收多个参数的函数,变成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受...

网友评论

    本文标题:柯里化函数实现

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