码迷,mamicode.com
首页 > Web开发 > 详细

js实现无限柯里化加法

时间:2015-11-05 18:56:29      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:

前端进阶计划第42周作业 看到。

js实现无限柯里化加法,也就是实现:

add(1)(2)(3)(); // => 6
add(1)(2)(3)(4)(); // => 10
add(1)(2)(3)(4)(5)(); // => 15

参考了柯里化的通用实现,于是写成了这样:

function adder( me ) {
            var slice = Array.prototype.slice,
            __args = slice.call(arguments);    
             return function () {
                var __inargs = slice.call(arguments);
                if( arguments.length == 0 ){
                    var me = 0 ;
                    for(var i in __args){
                        me +=  __args[i];
                    }
                    return me ;            
                }                    
                else
                   return adder.apply(this, __args.concat(__inargs));
            };
        }
alert( adder(1)(2)() );

 

js实现无限柯里化加法

标签:

原文地址:http://www.cnblogs.com/stois/p/4940358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!