码迷,mamicode.com
首页 > 其他好文 > 详细

函数式编程之柯里化(curry)

时间:2016-12-01 21:18:00      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:bsp   抽象   class   nbsp   pre   cti   his   简单   log   

 函数式编程curry的概念: 只传递给函数一部分参数来调用函数,然后返回一个函数去处理剩下的参数。

var add = function(x) {
        return function(y) {
            return x + y ;
        } ;
    } ;

    var increment = add(1) ;
    increment(1)//2 
    var addTen = add(10) ;
    addTen(10)//20

我们可以一次性的调用函数,也可以每次值传入一个参数分多次调用。

简单说curry就是对高阶函数(就是一种对过程的抽象 参考map它就是一个抽象的过程)的降阶处理。比如 function(arg1,arg2)变成function(arg1)(arg2)。function(arg1,arg2,arg3)变成function(arg1)(arg2)(arg3)....以此类推。反curry就是反过来!其中有个用途可以用来分离this 比如 

fn = function(x1,args){ 
  x.prototype.g.apply(x1,args)
}

 

函数式编程之柯里化(curry)

标签:bsp   抽象   class   nbsp   pre   cti   his   简单   log   

原文地址:http://www.cnblogs.com/Zwq286179/p/6122530.html

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