zoukankan      html  css  js  c++  java
  • 函数柯里话实现累加

    // 方法一
    function
    Sum () {
      // 用一个数组来存储所有的参数 let args
    = [].slice.call(arguments); // 定义一个函数 利用闭包的特性来收集所有的参数值 let fn = function() { let fn_args = [].slice.call(arguments); return Sum.apply(null,args.concat(fn_args)); } // 利用函数的隐式转换 重新定义toString 方法 内部使用reduce 累加后返回最终数据 fn.toString = function() { return args.reduce((acc,next)=>{ return acc + next; }) } return fn }

    // test
    Sum(1)(2,3) // 6
    Sum(1,2,3) // 6
    // 函数柯里化

    function currying(fn){
      let slice = Array.prototype.slice;
    let _args = slice.call(arguments,1)
      return function() {
         let _inargs = slice.call(arguments);
          return fn.apply(null,_args.concat(_inargs));
    }
    }
  • 相关阅读:
    HWOJ之纠结的优化
    java中的对象数组
    短路特性的运用
    归并排序
    两个有序数列的合并
    java中的注释规范
    堆排序
    堆的建立
    希尔排序
    直接插入排序
  • 原文地址:https://www.cnblogs.com/wtfu/p/13794456.html
Copyright © 2011-2022 走看看