User:Greeninvisibledreams/咖喱化
喺數學同電腦科學入面,咖喱化(粵拼:gaa3 lei1 faa3,亦稱加里化;英:currying,咖喱化咗=curried)就係將一個take幾個argument嘅function變做一列淨係take一個argument嘅function。譬如,咖喱化咗一個take三個argument嘅function f就會變三個function:
抽象啲嚟講,一個function take兩個argument(一個嚟自 ,一個嚟自 )做input而output個喺 嘅,如果咖喱化咗呢個function嘅話,噉佢就會變一個function,而呢個function會take一個嚟自 嘅input而output一個由 map到 嘅function。咖喱化𪐀partial application褦,但係兩個係唔同概念嚟嘅。
咖喱化理論同應用上嚟講都有用。喺啲functional同其他programming language入面,佢係攞嚟自動噉處理點將啲argument pass落去啲function同exception。喺理論電腦科學,咖喱化可以攞嚟研究點將啲收幾個argument嘅function化為淨係收一個argument嘅簡單模型。最一般而概念上緊密嘅應用範疇就係喺啲閂咗嘅monoidal category,嗰度就可以將褦埋證明同程式嘅Curry-Howard對應廣泛噉應用喺好多其他嘅結構,譬如量子力學(quantum mechanics),cobordisms同埋弦理論(string theory)。咖哩化係由Gottlob Frege引入嘅,後嚟再俾Moses Schönfinkel發展,跟住又俾Haskell Curry發展。
咖喱化嘅dual變換就係Uncurrying,係用嚟去function化嘅一種方法。簡單嚟講就係將一個入一個argument、出一個function 嘅function 化成一個入 同 嘅argument ,而 嘅output就等同apply完 再apply 得出嘅output。噉樣嘅過程係可以重複嘅。
動機
[編輯]咖喱化可以