函數式編程之柯里化(curry)

 函數式編程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

咱們能夠一次性的調用函數,也能夠每次值傳入一個參數分屢次調用。app

簡單說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)
}
相關文章
相關標籤/搜索