柯里化
維基百科,自由的 encyclopedia
在計算機科學中,柯里化(英語:Currying),又譯為卡瑞化或加里化,是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,並且返回接受餘下的參數而且返回結果的新函數的技術。這個技術由克里斯多福·斯特雷奇以邏輯學家哈斯凱爾·加里命名的,儘管它是Moses Schönfinkel和戈特洛布·弗雷格發明的。
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2017年5月15日) |
此條目沒有列出任何參考或來源。 (2017年5月15日) |
在直覺上,柯里化聲稱「如果你固定某些參數,你將得到接受餘下參數的一個函數」。所以對於有兩個變量的函數,如果固定了,則得到有一個變量的函數。
在理論計算機科學中,柯里化提供了在簡單的理論模型中,比如:只接受一個單一參數的lambda演算中,研究帶有多個參數的函數的方式。
函數柯里化的對偶是Uncurrying,一種使用匿名單參數函數來實現多參數函數的方法。例如:
var foo = function(a) {
return function(b) {
return a * a + b * b;
}
}
這樣調用上述函數:(foo(3))(4)
,或直接foo(3)(4)
。