美文网首页
高阶函数实现(柯里化)

高阶函数实现(柯里化)

作者: GGatsby | 来源:发表于2019-08-05 15:39 被阅读0次

请实现一个 add 函数,满足以下功能。

add(1);     // 1
add(1)(2);      // 3
add(1)(2)(3);  // 6
add(1)(2, 3);   // 6
add(1, 2)(3);   // 6
add(1, 2, 3);   // 6

思路:
1.函数内部返回新的函数
2.函数内部记录每次传入的参数
3.函数结果通过调用默认toString方法输出

代码如下:

function add() {
  let args = [].slice.call(arguments);
  let fn = function(){
   let fn_args = [].slice.call(arguments)
   return add.apply(null,args.concat(fn_args))
 }
 fn.toString = function(){
   return args.reduce((a,b)=>a+b)
 }
 return fn
}

https://www.jianshu.com/p/2975c25e4d71

相关文章

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

    高阶函数 函数柯里化

  • 高阶函数实现(柯里化)

    请实现一个 add 函数,满足以下功能。 思路:1.函数内部返回新的函数2.函数内部记录每次传入的参数3.函数结果...

  • 初学函数式编程

    高阶函数(Higher-Order Function):高阶函数就是把函数作为参数的函数。 柯里化(Curryin...

  • [PLT] 柯里化的前生今世(一):函数面面观

    关于 本文作为开篇,介绍了出场人物,并形象化的引入了高阶函数,得到了柯里化的概念。 后续文章,会介绍高阶函数的实现...

  • javascript-柯里化2018-08-08

    柯里化 / 高阶函数 柯里化:将 f(x,y) 变成 f(x=1)(y) 或 f(y=1)x 重点!!!柯里化可以...

  • 手写简单.bind()实现

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

  • JS函数柯里化

    在正式聊函数柯里化之前,我这里给大家补充下高阶函数的概念和应用: 1.1、什么是高阶函数?高阶函数英文叫 High...

  • 柯里化、高阶函数、

    柯里化 高阶函数在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:**接受一个或多个函数作为输入:for...

  • 柯里化,高阶函数

    柯里化Currying: 柯里化:多参数函数变成接受单一参数并将【接受余下参数且返回结果的】新函数返回的技术。 柯...

  • curried function

    柯里化 haskell 趣学指南中在高阶函数这一章中提出了柯里化概念。举例max函数首先看max函数的类型 按照以...

网友评论

      本文标题:高阶函数实现(柯里化)

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