函數式編程之柯里化(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

我們可以一次性的調用函數,也可以每次值傳入一個參數分多次調用。

簡單說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)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM