柯里化

在計算機科學中 ， 柯里化 （ Currying ） ， 又譯爲卡瑞化或加里化 ， 是把接受多個參數的函數變換成接受一個單一參數 （ 最初函數的第一個參數 ） 的函數 ， 並且返回接受餘下的參數而且返回結果的新函數的技術 。 這個技術由克里斯托弗 · 斯特雷奇以邏輯學家哈斯凱爾 · 加里命名的 ， 儘管它是Moses Schönfinkel和戈特洛布 · 弗雷格發明的 。 在直覺上 ， 柯里化聲稱 「 如果你固定某些參數 ， 你將得到接受餘下參數的一個函數 」 。 所以對於有兩個變量的函數 ， 如果固定了 ， 則得到有一個變量的函數 。 在理論計算機科學中 ， 柯里化提供了在簡單的理論模型中 ， 比如 ： 只接受一個單一參數的lambda演算中 ， 研究帶有多個參數的函數的方式 。 函數柯里化的對偶是Uncurrying ， 一種使用匿名單參數函數來實現多參數函數的方法 。 例如 ： var foo = function ( a ) { return function ( b ) { return a * a + b * b;  這樣調用上述函數 ： ( foo ( 3 ) ) ( 4 ) ， 或直接foo ( 3 ) ( 4 ) 。