कर्र्यींग (Currying)

गणित और संगणक विज्ञान में, कर्र्यींग एक के मूल्यांकन का अनुवाद करने की विधि है जो फलनों के अनुक्रम (संगणक विज्ञान) का मूल्यांकन करने में कई तर्क लेता है, प्रत्येक एक तर्क के साथ है। उदाहरण के लिए, एक कलन $$f$$  जो तीन तर्क लेता है, जिससे एक स्थिर एकल फलन $$g$$ बनाता है, ताकि संकेत
 * $$\text{let }x=f(a,b,c)$$

संकेत के समान मान $$x$$ देता है

\begin{align} \text{let }h = g(a) \\ \text{let }i = h(b) \\ \text{let }x = i(c), \end{align}$$ या क्रम में कहा जाता है,
 * $$\text{let }x = g(a)(b)(c).$$

गणितीय भाषा में अधिकतर, एक फलन जो दो तर्क लेता है, एक से $$X$$ और दूसरे से $$Y$$, और $$Z$$ में आउटपुट उत्पन्न करता है कर्र्यींगइंग द्वारा एक फलन में अनुवादित किया जाता है जो $$X$$ से एकल तर्क लेता है और $$Y$$ से $$Z$$ तक आउटपुट फ़ंक्शन के रूप में उत्पन्न करता है। यह इन दो प्रकार के फलनों के बीच एक स्वाभाविक एक-से-एक समतुल्यता है, जिससे कि सेट (गणित) उनके बीच के फलनों के साथ एक कार्तीय बंद श्रेणी बनाते हैं। दो से अधिक तर्कों वाले फलन की कर्र्यींग को तब प्रेरण द्वारा परिभाषित किया जा सकता है। कर्र्यींग संबंधित है, लेकिन आंशिक अनुप्रयोग के समान नहीं है।

कर्र्यींग करना व्यावहारिक और सैद्धांतिक दोनों स्थितियों में उपयोगी है। कार्यात्मक प्रोग्रामिंग भाषाओं और कई अन्य भाषाओं में, यह स्वचालित रूप से प्रबंधित करने का एक विधि प्रदान करता है कि फलन और अपवादों के लिए तर्क कैसे पास किए जाते हैं। सैद्धांतिक संगणक विज्ञान में, यह सरल सैद्धांतिक मॉडल में कई तर्कों के साथ फलनों का अध्ययन करने का एक विधि प्रदान करता है जो केवल एक तर्क प्रदान करता है। कर्र्यींग और अनकर्र्यींग की सख्त धारणा के लिए सबसे सामान्य सेटिंग बंद मोनोइडल श्रेणी में है, जो क्वांटम यांत्रिकी, कोबोर्डिज्म और स्ट्रिंग सिद्धांत सहित कई अन्य संरचनाओं के साथ समतुल्यता के लिए कर्र्यींग-हावर्ड समतुल्यता के सबूत और प्रोग्राम के विशाल सामान्यीकरण को रेखांकित करता है। यह गोटलॉब फ्रेज द्वारा प्रस्तुत किया गया था, मूसा शॉनफिंकेल द्वारा विकसित,  और आगे हास्केल कर्र्यींग द्वारा विकसित किया गया।

अनकर्र्यींग द्वैत (गणित) को कर्र्यींग करने के लिए परिवर्तन है, और इसे निष्क्रियता के एक रूप के रूप में देखा जा सकता है। यह एक फलन (गणित) $$f$$ लेता है जिसका व्युत्क्रम मान एक और फलन $$g$$ है, और एक नया फलन $$f'$$उत्पन्न करता है जो पैरामीटर के रूप में दोनों $$f$$  के लिए तर्क लेता है, और $$g$$ परिणामस्वरूप उन तर्कों के लिए $$f$$ और बाद में,$$g$$,का अनुप्रयोग करता है। और इस प्रक्रिया को पुनरावृत्त किया जा सकता है।

प्रेरणा
कर्र्यींग उन फलनों के साथ काम करने का एक विधि प्रदान करता है जो कई तर्क लेते हैं, और उन्हें संरचनाओं में उपयोग करते हैं जहां फलन केवल एक तर्क ले सकते हैं। उदाहरण के लिए, कुछ विश्लेषणात्मक विधियों को केवल एक ही तर्क वाले फलनों पर लागू किया जा सकता है। व्यावहारिक कार्य अधिकांश इससे अधिक तर्क लेते हैं। फ्रीज ने दिखाया कि यह एकल तर्क स्थितियों के लिए समाधान प्रदान करने के लिए पर्याप्त था, क्योंकि एक फलन को कई तर्कों के साथ एकल-तर्क फलनों की श्रृंखला में बदलना संभव था। यह परिवर्तन अब कर्र्यींग के रूप में जानी जाने वाली प्रक्रिया है। गणितीय विश्लेषण या संगणक प्रोग्रामिंग में सामान्यतः सामने आने वाले सभी सामान्य फलनों को नियंत्रित किया जा सकता है। चूंकि, ऐसी श्रेणियां हैं जिनमें कर्र्यींग बनाना संभव नहीं है; कर्र्यींगने की अनुमति देने वाली सबसे सामान्य श्रेणियां बंद मोनोइडल श्रेणी हैं।

कुछ प्रोग्रामिंग भाषा लगभग हमेशा कई तर्कों को प्राप्त करने के लिए नजदीकी फलनों का उपयोग करती हैं; उल्लेखनीय उदाहरण एमएल (प्रोग्रामिंग भाषा) और हास्केल (प्रोग्रामिंग भाषा) हैं, जहां दोनों स्थितियों में सभी फलनों में बिल्कुल एक तर्क होता है। यह गुण लैम्ब्डा कलन से विरासत में मिली है, जहां बहु-तर्क फलनों को सामान्यतः घुमावदार रूप में दर्शाया जाता है।

कर्र्यींग संबंधित है, लेकिन आंशिक अनुप्रयोग के समान नहीं है। अभ्यास में, क्लोजर (संगणक प्रोग्रामिंग) की प्रोग्रामिंग विधि का उपयोग आंशिक अनुप्रयोग और एक प्रकार की कर्र्यींग करने के लिए किया जा सकता है, जो कर्र्यींग फलन के साथ यात्रा करने वाले वातावरण में तर्क छिपाकर करता है।

चित्रण
मान लीजिए हमारे पास $$f:\mathbb{R}\times\mathbb{R}\to\mathbb{R}$$ एक कलन है जो दो वास्तविक संख्या ($$\mathbb{R}$$) लेता है और वास्तविक संख्या को आउटपुट करता है, और इसके $$f(x,y)=x+y^2$$ द्वारा परिभाषित किया जाता है. कर्र्यींग इसे एक कलन $$h$$ में अनुवादित करता है जो एक वास्तविक तर्क लेता है और $$\mathbb{R}$$ से $$\mathbb{R}$$ फलनों को आउटपुट करता है. प्रतीकों में, $$h:\mathbb{R}\to\mathbb{R}^\mathbb{R}$$, जहाँ $$\mathbb{R}^\mathbb{R}$$उन सभी फलनों के सेट को दर्शाता है जो एक वास्तविक तर्क लेते हैं और वास्तविक आउटपुट उत्पन्न करते हैं। प्रत्येक वास्तविक संख्या के लिए $$x$$, फलन $$h_x : \mathbb{R}\to\mathbb{R}$$ को परिभाषित करें द्वारा $$h_x(y)=x+y^2$$, और उसके बाद फलन $$h:\mathbb{R}\to\mathbb{R}^\mathbb{R}$$ द्वारा $$h(x)=h_x$$ को परिभाषित करें. तो उदाहरण के लिए, $$h(2)$$ वह फलन है जो अपना वास्तविक तर्क $$y$$ आउटपुट के लिए $$2+y^2$$, या $$h(2)(y)=h_2(y)=2+y^2$$ भेजता है. हम इसे सामान्य तौर पर देखते हैं


 * $$h(x)(y)=x+y^2=f(x,y)$$

ताकि मूल फलन $$f$$ और इसकी कर्र्यींग $$h$$ बिल्कुल समान जानकारी व्यक्त करें। ऐसी स्थिति में हम लिखते भी हैं


 * $$\text{curry}(f) = h.$$

यह दो से अधिक तर्कों वाले फलनों के लिए भी काम करता है। यदि $$f$$ तीन तर्कों का एक फलन $$f(x,y,z)$$ था, इसकी कर्र्यींग $$h$$ यह गुण होगा


 * $$f(x,y,z)=h(x)(y)(z).$$

इतिहास
"कर्र्यींग" में "कर्र्यींग" तर्कशास्त्री हास्केल कर्र्यींग का एक संदर्भ है, जिन्होंने इस अवधारणा का व्यापक रूप से उपयोग किया था, लेकिन मोसेस शॉनफिंकेल को कर्र्यींग से 6 साल पहले यह विचार आया था। वैकल्पिक नाम "शॉनफिंकेलाइजेशन" प्रस्तावित किया गया है। गणितीय संदर्भ में, सिद्धांत को 1893 में गोटलॉब फ्रेज द्वारा काम करने के लिए वापस खोजा जा सकता है।

कर्र्यींग शब्द का जनक स्पष्ट नहीं है। डेविड टर्नर (संगणक वैज्ञानिक) का कहना है कि यह शब्द क्रिस्टोफर स्ट्रेची द्वारा अपने 1967 के व्याख्यान नोट्स में मौलिक अवधारणाओं को प्रोग्रामिंग भाषाओं में गढ़ा गया था। लेकिन यद्यपि अवधारणा का उल्लेख किया गया है, नोटों में कर्र्यींग शब्द प्रकट नहीं होता है। जॉन सी रेनॉल्ड्स ने 1972 के पेपर में कर्र्यींग को परिभाषित किया, लेकिन इस शब्द को गढ़ने का दावा नहीं किया।

परिभाषा
एक अनौपचारिक परिभाषा के साथ प्रारंभ करके कर्र्यींग को सबसे आसानी से समझा जा सकता है, जिसे बाद में कई अलग-अलग डोमेन में उपयुक्त करने के लिए बनाया जा सकता है। सबसे पहले, स्थापित करने के लिए कुछ संकेतन है। संकेतन $$X \to Y $$ और $$X$$ से $$Y$$से सभी फलन को दर्शाता है. यदि $$f$$ ऐसा एक फलन है, हम लिखते हैं $$f \colon X \to Y $$. मान लीजिये $$X \times Y$$ के तत्वों के क्रमित जोड़े $$X$$ और $$Y$$ को निरूपित करें वह है, $$X$$ और $$Y$$ कार्तीय उत्पाद. यहां, $$X$$ और $$Y$$ सेट हो सकते हैं, या वे प्रकार हो सकते हैं, या वे अन्य प्रकार के वस्तु हो सकते हैं, जैसा कि नीचे दिखाया गया है।

एक कलन दिया


 * $$f \colon (X \times Y) \to Z $$,

कर्र्यींग एक नया फलन बनाता है


 * $$h \colon X \to (Y \to Z) $$.

अर्थात्, $$h $$ $$X$$ से तर्क लेता है और एक फलन देता है जो $$Y$$ को $$Z$$ पर मापता है. इसके द्वारा परिभाषित किया गया है


 * $$h(x)(y)=f(x,y)$$

$$x$$ से $$X$$ और $$y$$ से $$Y$$ के लिये. फिर हम भी लिखते हैं


 * $$\text{curry}(f)=h.$$

अनकर्र्यींग व्युत्क्रम में परिवर्तन है, और इसे इसके दाहिने आसन्न फलन $$\operatorname{apply}$$ के संदर्भ में सबसे आसानी से समझा जाता है

सेट सिद्धांत
सेट सिद्धांत में, संकेतन $$Y^X$$ सेट से फलनों के सेट (गणित) $$X$$ सेट पर $$Y$$ को निरूपित करने के लिए उपयोग किया जाता है. कर्र्यींग $$A^{B\times C}$$सेट से फलनों की $$B\times C$$ से $$A$$ के बीच प्राकृतिक समानता है, और सेट $$(A^C)^B$$ से फलनों की $$B$$ फलनों के सेट से $$C$$ से $$A$$. प्रतीकों में:


 * $$A^{B\times C}\cong (A^C)^B$$

वास्तविक में, यह प्राकृतिक आपत्ति है जो फलनों के सेट के लिए घातीय संकेतन को सही ठहराती है। जैसा कि कर्र्यींगने के सभी उदाहरणों में होता है, ऊपर दिया गया सूत्र एक सहायक कारक का वर्णन करता है: प्रत्येक निश्चित सेट के लिए $$C$$, काम करनेवाला $$B\mapsto B\times C$$ प्रकार्यक के पास $$A \mapsto A^C$$छोड़ दिया जाता है.

सेट की श्रेणी में, गणितीय वस्तु $$Y^X$$ घातीय वस्तु कहा जाता है।

कलन रिक्त स्थान
फलन रिक्त स्थान के सिद्धांत में, जैसे कि कार्यात्मक विश्लेषण या होमोटॉपी सिद्धांत में, सामान्यतः टोपोलॉजिकल स्पेस स्थान के बीच निरंतर फलनों में महत्त्व होती है। $$X$$ से $$Y$$ तक सभी फलनो के सेट के लिए एक $$\text{Hom}(X,Y)$$ लिखता है, और निरंतर फलनों के सबसेट को दर्शाने के लिये संकेतन $$Y^X$$ का उपयोग करता है (मैं एक आदमी के रूप में काम करता हूं)  $$\text{curry}$$ आक्षेप है


 * $$\text{curry}:\text{Hom}(X\times Y, Z) \to \text{Hom}(X, \text{Hom}(Y,Z)) ,$$

जबकि अनकर्र्यींग व्युत्क्रम चित्र है। यदि सेट $$Y^X$$ से निरंतर फलनों की $$X$$ से $$Y$$ विनिमेय-खुला टोपोलॉजी दी जाती है, और यदि स्पेस $$Y$$ तब स्थानीय रूप से विनिमेय हौसडॉर्फ है


 * $$\text{curry} : Z^{X\times Y}\to (Z^Y)^X$$

जब $$X$$, $$Y$$ और $$Y^X$$ सघन से उत्पन्न होते हैं,  तो फिर एक होमियोमोर्फिज्म होगा, जबकि और भी स्थितियां हैं।

एक उपयोगी उपप्रमेय यह है कि एक फलन निरंतर होता है यदि और केवल यदि इसका कर्र्यींगड रूप निरंतर हो तो ही निरंतर फलन होगा। एक अन्य महत्वपूर्ण परिणाम यह है कि अनुप्रयोग प्रतिचित्र, जिसे सामान्यतः इस संदर्भ में "मूल्यांकन" कहा जाता है, निरंतर है (ध्यान दें कि eval संगणक विज्ञान में एक पूरी तरह से अलग अवधारणा है।) अर्थात,

$$\begin{align} &&\text{eval}:Y^X \times X \to Y \\ && (f,x) \mapsto f(x) \end{align}$$

जब $$Y^X$$ विनिमेय-खुला होता है और $$Y$$ स्थानीय रूप से विनिमेय हौसडॉर्फ निरंतर फलन होता है। होमोटॉपी की निरंतरता को स्थापित करने के लिए ये दो परिणाम केंद्रीय हैं, अर्थात जब $$X$$ इकाई अंतराल $$I$$ है, ताकि $$Z^{I\times Y} \cong (Z^Y)^I$$ या तो दो फलनों  $$Y$$ से $$Z$$ के होमोटॉपी के रूप में सोचा जा सकता है, या, समतुल्य, एक एकल (निरंतर) पथ $$Z^Y$$है.

बीजगणितीय टोपोलॉजी
बीजगणितीय टोपोलॉजी में, कर्र्यींग एकमैन-हिल्टन द्वैत के उदाहरण के रूप में कार्य करता है, और, जैसे, विभिन्न सेटिंग्स में एक महत्वपूर्ण भूमिका निभाता है। उदाहरण के लिए, लूप स्पेस कम निलंबन के निकट है; इसे सामान्यतः इस रूप में लिखा जाता है
 * $$[\Sigma X,Z] \approxeq [X, \Omega Z]$$

जहाँ $$[A,B]$$ चित्रों की होमोटॉपी कक्षाओं का सेट है $$A \rightarrow B$$, और $$\Sigma A$$ का निलंबन (टोपोलॉजी) है, और $$\Omega A$$ का लूप स्पेस है। संक्षेप में, निलंबन $$\Sigma X$$ के कार्तीय उत्पाद के रूप में देखा जा सकता है $$X$$ इकाई अंतराल के साथ, अंतराल को लूप में बदलने के लिए एक तुल्यता संबंध मॉड्यूल करें। कर्र्यींगड अवस्था फिर $$X$$ को लूप्स से $$Z$$ में अर्थात् $$X$$ से $$\Omega Z$$ में फ़ंक्शन के स्थान पर चित्रण करता है। तब $$\text{curry}$$ आसन्न फ़ंक्टर है जो लूप स्पेस के लिए निलंबन को चित्रण करता है, और अनकर्र्यींगइंग दोहरी है।

चित्रण कोन (टोपोलॉजी) और चित्रण फाइबर (cofibration और कंपन) के बीच द्वंद्व को कर्र्यींगने के एक रूप के रूप में समझा जा सकता है, जो बदले में लंबे यथार्थ अनुक्रम और कॉक्सैक्ट पपी अनुक्रमों के द्वंद्व की ओर जाता है।

समरूप बीजगणित में, कर्र्यींग और अनकर्र्यींग के बीच संबंध को टेंसर-होम संयोजन के रूप में जाना जाता है। यहाँ, एक महत्वपूर्ण मोड़ उत्पन्न होता है: होम फ़ंक्टर और टेन्सर उत्पाद फ़ंक्टर एक यथार्थ क्रम में (गणित) नहीं उठा सकते हैं; यह ईएक्सटी फ़ैक्टर और टोर फ़ैक्टर की परिभाषा की ओर ले जाता है।

डोमेन सिद्धांत
डोमेन सिद्धांत में, अर्थात्, आंशिक रूप से डोमेनित सेटों के जाली (क्रम) का सिद्धांत, $$\text{curry}$$ एक सतत कार्य है जब जाली को स्कॉट टोपोलॉजी दिया जाता है। लैम्ब्डा कलन के लिए शब्दार्थ प्रदान करने के प्रयास में स्कॉट-निरंतर फलनों की पहली बार जांच की गई थी (जैसा कि सामान्य सेट सिद्धांत ऐसा करने के लिए अपर्याप्त है)। अधिक सामान्यतः, स्कॉट-निरंतर फलनों का अध्ययन अब डोमेन सिद्धांत में किया जाता है, जिसमें संगणक कलन विधि के सांकेतिक शब्दार्थ का अध्ययन सम्मिलित है। ध्यान दें कि स्कॉट टोपोलॉजी टोपोलॉजिकल स्पेस की श्रेणी में आने वाली कई सामान्य टोपोलॉजी से काफी अलग है; स्कॉट टोपोलॉजी सामान्यतः अंतिम टोपोलॉजी है, और शांत स्थान नहीं है।

निरंतरता की धारणा होमोटोपी प्रकार के सिद्धांत में प्रकट होती है, जहां, साधारणतः बोल, दो संगणक प्रोग्रामों को होमोटोपिक माना जा सकता है, अर्थात समान परिणामों की गणना करें, यदि वे एक से दूसरे में लगातार संकेत रीफैक्टरिंग कर सकते हैं।

लैम्ब्डा गणना
सैद्धांतिक संगणक विज्ञान में, कर्र्यींग लैम्ब्डा कलन जैसे बहुत ही सरल सैद्धांतिक मॉडल में कई तर्कों के साथ फलनों का अध्ययन करने का एक विधि प्रदान करता है, जिसमें फलन केवल एक तर्क लेते हैं। दो तर्कों को लेकर एक कलन $$f(x,y)$$ पर विचार करें, और प्रकार $$(X \times Y)\to Z$$ रखना, जिसका अर्थ यह समझा जाना चाहिए कि x का प्रकार $$X$$ होना चाहिए, और y का प्रकार $$Y$$ होना चाहिए, और फलन $$Z$$ स्वयं प्रकार लौटाता है. F के कढ़ी रूप को परिभाषित किया गया है


 * $$\text{curry}(f) = \lambda x.(\lambda y.(f(x,y)))$$

जहाँ $$\lambda$$ लैम्ब्डा गणना का अमूर्त है। चूंकि कर्र्यींग, इनपुट $$(X\times Y)\to Z$$ के रूप में, प्रकार के साथ कार्य करती है, कोई यह निष्कर्ष निकालता है कि कर्र्यींग का प्रकार ही है


 * $$\text{curry}:((X \times Y)\to Z) \to (X \to (Y \to Z))$$

→ संचालिका को अधिकांश सही सहयोगी माना जाता है, इसलिए कर्र्यींग फलन प्रकार $$X \to (Y \to Z)$$ अधिकांश $$X \to Y \to Z$$ के रूप में लिखा जाता है. इसके विपरीत, कलन आवेदन को संचालिका सहयोगीता माना जाता है | बाएं-सहयोगी, ताकि $$f(x, y)$$ के बराबर है


 * $$((\text{curry}(f) \; x) \;y) = \text{curry}(f) \; x \;y$$.

अर्थात्, आवेदन के क्रम को स्पष्ट करने के लिए कोष्ठक की आवश्यकता नहीं है।

नजदीकी फलनों का उपयोग किसी भी प्रोग्रामिंग भाषा में किया जा सकता है जो क्लोजर (संगणक विज्ञान) का समर्थन करता है; चूंकि, अनिश्चित फलनों को सामान्यतः दक्षता कारणों से पसंद किया जाता है, क्योंकि आंशिक अनुप्रयोग के ऊपरी हिस्से और बंद करने के निर्माण को अधिकांश फलन कॉलों के लिए टाला जा सकता है।

प्रकार सिद्धांत
प्रकार के सिद्धांत में, संगणक विज्ञान में एक प्रकार की प्रणाली के सामान्य विचार को एक विशिष्ट बीजगणित के प्रकारों में औपचारिक रूप दिया जाता है। उदाहरण के लिए, लिखते समय $$f \colon X \to Y $$, आशय यह है $$X$$ और $$Y$$ टाइप सिस्टम हैं, जबकि एरो $$\to$$ एक प्रकार कंस्ट्रक्टर टाइप करें है, विशेष रूप से, फलन प्रकार या तीर प्रकार। इसी तरह, कार्तीय उत्पाद $$X \times Y$$ प्रकार का निर्माण उत्पाद प्रकार कन्स्ट्रक्टर $$\times$$ द्वारा किया जाता है.

प्रकार-सैद्धांतिक दृष्टिकोण प्रोग्रामिंग भाषाओं जैसे एमएल (प्रोग्रामिंग भाषा) और उससे प्राप्त और सीएएमएल, हास्केल (प्रोग्रामिंग भाषा) और एफ शार्प (प्रोग्रामिंग भाषा) प्रेरित भाषाओं में व्यक्त किया गया है |

प्रकार-सैद्धांतिक दृष्टिकोण श्रेणी सिद्धांत की भाषा के लिए एक स्वाभाविक पूरक प्रदान करता है, जैसा कि नीचे चर्चा की गई है। ऐसा इसलिए है क्योंकि श्रेणियों, और विशेष रूप से, मोनोइडल श्रेणियों में एक आंतरिक भाषा होती है, जिसमें साधारण रूप से टाइप की गई लैम्ब्डा कैलकुलस ऐसी भाषा का सबसे प्रमुख उदाहरण है। यह इस संदर्भ में महत्वपूर्ण है, क्योंकि इसे एक प्रकार के कंस्ट्रक्टर, एरो टाइप से बनाया जा सकता है। इसके बाद कर्र्यींग भाषा को एक प्राकृतिक उत्पाद प्रकार प्रदान करती है। श्रेणियों और प्रकारों में वस्तुओं के बीच समतुल्यता तब प्रोग्रामिंग भाषाओं को लॉजिक्स (कर्र्यींग-हावर्ड समतुल्यता के माध्यम से) और अन्य प्रकार की गणितीय प्रणालियों के रूप में फिर से व्याख्या करने की अनुमति देता है, जैसा कि आगे की खोज की गई है।

तर्क
कर्र्यींग-हावर्ड समतुल्यता के तहत, कर्र्यींग और अनकर्र्यींग का अस्तित्व तार्किक प्रमेय $$(A \land B) \to C \Leftrightarrow A \to (B \to C)$$ के बराबर है, टुपल्स (उत्पाद प्रकार) के रूप में तर्क में संयोजन के अनुरूप है, और फलन प्रकार निहितार्थ के समान होता है।

घातीय वस्तु $$Q^P$$ हेटिंग बीजगणित की श्रेणी में सामान्य रूप से सामग्री सशर्त $$P\to Q$$ के रूप में लिखा जाता है. वितरण हेटिंग बीजगणित बूलियन बीजगणित हैं, और घातीय वस्तु $$\neg P \lor Q$$ का स्पष्ट रूप है, इस प्रकार यह स्पष्ट करता है कि घातीय वस्तु वास्तव में भौतिक निहितार्थ (अनुमान का नियम) है।

श्रेणी सिद्धांत
कर्र्यींगइंग और अनकर्र्यींग की उपरोक्त धारणाएं श्रेणी सिद्धांत में उनके सबसे सामान्य, अमूर्त कथन को खोजती हैं। कर्र्यींगइंग एक घातीय वस्तु की एक सार्वभौमिक गुण है, और कार्तीय बंद श्रेणी में एक संयोजन (श्रेणी सिद्धांत) को जन्म देती है। अर्थात्, एक बाइनरी उत्पाद (श्रेणी सिद्धांत) $$f \colon (X \times Y) \to Z $$ से रूपवाद (श्रेणी सिद्धांत) के बीच एक प्राकृतिक परिवर्तन समरूपता है।  $$g \colon X \to Z^Y $$और एक घातीय वस्तु के लिए रुपवाद है.

यह बंद मोनोइडल श्रेणी में एक व्यापक परिणाम के लिए सामान्यीकरण करता है: कर्र्यींगइंग यह कथन है कि मोनोइडल श्रेणी और आंतरिक होम आसन्न फ़ैक्टर हैं; अर्थात् हर वस्तु के लिए $$B$$ एक प्राकृतिक परिवर्तन है:


 * $$ \mathrm{Hom}(A\otimes B, C) \cong \mathrm{Hom}(A, B\Rightarrow C) .$$

यहाँ, होम श्रेणी में सभी आकारिता के (बाहरी) होम-फ़ंक्टर को दर्शाता है, जबकि $$B\Rightarrow C$$ बंद मोनोइडल श्रेणी में आंतरिक होम फ़ैक्टर को दर्शाता है। समुच्चयों की श्रेणी के लिए, दोनों समान हैं। जब उत्पाद कार्तीय उत्पाद है, तो आंतरिक होम $$B\Rightarrow C$$ घातीय वस्तु $$C^B$$ बन जाती है.

कर्र्यींग दो तरह से टूट सकती है। एक यह है कि यदि कोई श्रेणी बंद श्रेणी नहीं है, और इस प्रकार एक आंतरिक होम फ़ैक्टर की कमी है (संभवतः क्योंकि इस तरह के फ़ैक्टर के लिए एक से अधिक विकल्प हैं)। दूसरा विधि यह है कि यदि यह मोनोइडल श्रेणी नहीं है, और इस प्रकार एक उत्पाद की कमी है (अर्थात, वस्तुओं के जोड़े को लिखने का एक विधि नहीं है)। जिन श्रेणियों में उत्पाद और आंतरिक होम दोनों होते हैं, वे बिल्कुल बंद मोनोइडल श्रेणियां हैं।

पारंपरिक तर्क की वाद विवाद के लिए कार्तीय बंद श्रेणियों की सेटिंग पर्याप्त है; बंद मोनोइडल श्रेणियों की अधिक सामान्य सेटिंग क्वांटम संगणना के लिए उपयुक्त है।

इन दोनों के बीच का अंतर यह है कि कार्तीय श्रेणियों के लिए उत्पाद (गणित) (जैसे सेट की श्रेणी, पूर्ण आंशिक ऑर्डर या हेटिंग बीजगणित) केवल कार्तीय उत्पाद है; इसकी व्याख्या वस्तुओं की एक क्रमबद्ध जोड़ी (या एक सूची) के रूप में की जाती है। बस टाइप किया गया लैम्ब्डा कलन कार्तीय बंद श्रेणियों की आंतरिक भाषा है; और यह इस कारण से है कि जोड़े और सूचियाँ एलआईएसपी, योजना (प्रोग्रामिंग भाषा) और कई कार्यात्मक प्रोग्रामिंग भाषाओं के प्रकार सिद्धांत में प्राथमिक प्रकार की प्रणाली हैं।

इसके विपरीत, मोनोइडल श्रेणी के लिए उत्पाद (जैसे हिल्बर्ट अंतरिक्ष और कार्यात्मक विश्लेषण के वेक्टर रिक्त स्थान) टेंसर उत्पाद है। ऐसी श्रेणियों की आंतरिक भाषा रेखीय तर्क है, जो क्वांटम तर्क का एक रूप है; इसी प्रकार की प्रणाली रैखिक प्रकार की प्रणाली है। ऐसी श्रेणियां उलझी हुई क्वांटम अवस्थाओं का वर्णन करने के लिए उपयुक्त हैं, और, अधिक सामान्यतः, कर्र्यींग-हावर्ड समतुल्यता को क्वांटम यांत्रिकी, बीजगणितीय टोपोलॉजी में सहबोर्डवाद और स्ट्रिंग सिद्धांत के लिए एक विशाल सामान्यीकरण की अनुमति देती हैं। रेखीय प्रकार प्रणाली, और रेखीय तर्क तुल्यकालन आदिमों का वर्णन करने के लिए उपयोगी होते हैं, जैसे पारस्परिक बहिष्करण ताले, और वेंडिंग मशीनों का संचालन।

आंशिक फलन आवेदन के साथ तुलना करें

कर्र्यींग और आंशिक कार्य अनुप्रयोग अधिकांश मिश्रित होते हैं। दोनों के बीच महत्वपूर्ण अंतरों में से एक अंतर यह है कि आंशिक रूप से लागू किए गए फलन के लिए कॉल तुरंत परिणाम देता है, कर्र्यींग श्रृंखला के नीचे कोई अन्य फलन नहीं; इस भेद को उन फलनों के लिए स्पष्ट रूप से चित्रित किया जा सकता है जिनकी संख्या दो से अधिक है।

$$f \colon (X \times Y \times Z) \to N $$ प्रप्रकार के एक फलन को देखते हुए, कर्र्यींग $$\text{curry}(f) \colon X \to (Y \to (Z \to N)) $$ उत्पन करता है. अर्थात्, जबकि पहले फलन का मूल्यांकन $$f(1, 2, 3)$$ इस रूप में प्रदर्शित किया जा सकता है, नजदीकी कलन के मूल्यांकन $$f_\text{curried}(1)(2)(3)$$ के रूप में प्रतिनिधित्व किया जाएगा, प्रत्येक तर्क को पिछले उत्क्रियण द्वारा लौटाए गए एकल-तर्क फलन के बदले में लागू करना है। ध्यान दें कि कॉल करने के बाद $$f_\text{curried}(1)$$, हम एक ऐसे फलन के साथ बचे हैं जो एक तर्क लेता है और दूसरा फलन देता है, ऐसा फलन नहीं जो दो तर्क लेता है।

इसके विपरीत, आंशिक फलन एप्लिकेशन एक फलन के लिए कई तर्कों को ठीक करने की प्रक्रिया को संदर्भित करता है, जो कि छोटे आकार का एक और फ़ंक्शन उत्पन्न करता है। ऊपर दिए गए $$f$$ की परिभाषा को देखते हुए, हम $$\text{partial}(f) \colon (Y \times Z) \to N$$ प्रकार के फ़ंक्शन का निर्माण करते हुए, पहले तर्क को ठीक (या 'बाइंड') कर सकते हैं। इस कलन के मूल्यांकन $$f_\text{partial}(2, 3)$$ के रूप में प्रतिनिधित्व किया जा सकता है. ध्यान दें कि इस स्थितियों में आंशिक फलन एप्लिकेशन का परिणाम एक ऐसा फलन है जो दो तर्क लेता है।

सहज रूप से, आंशिक फ़ंक्शन एप्लिकेशन कहता है "यदि आप फ़ंक्शन के पहले तर्क को ठीक करते हैं, तो आपको शेष तर्कों का एक फलन मिलता है"। उदाहरण के लिए, यदि फलन div डिवीजन संचालन x/y के लिए खड़ा है, तो पैरामीटर x के साथ div 1 पर तय किया गया है (अर्थात्, div 1) एक और फलन है: फलन inv के समान है inv(y) = 1/y द्वारा परिभाषित अपने तर्क का गुणक व्युत्क्रम लौटाता है।

आंशिक अनुप्रयोग के लिए व्यावहारिक अभिप्रेरणा यह है कि अधिकांश किसी फलन के लिए सभी नहीं बल्कि कुछ तर्क देकर प्राप्त किए गए फलन उपयोगी होते हैं; उदाहरण के लिए, कई भाषाओं में  जैसा फलन या संचालिका होती है. आंशिक अनुप्रयोग इन फलनों को परिभाषित करना आसान बनाता है, उदाहरण के लिए एक फलन बनाकर जो इसके पहले तर्क के रूप में 1 बाउंड के साथ अतिरिक्त संचालिका का प्रतिनिधित्व करता है।

आंशिक अनुप्रयोग को एक निश्चित बिंदु पर एक निश्चित कार्य के मूल्यांकन के रूप में देखा जा सकता है, उदा। $$f \colon (X \times Y \times Z) \to N $$ और $$a \in X$$ फिर $$\text{curry}(\text{partial}(f)_a)(y)(z) = \text{curry}(f)(a)(y)(z) $$ या केवल $$\text{partial}(f)_a = \text{curry}_1(f)(a) $$ जहाँ पे $$\text{curry}_1$$ कर्र्यींग एफ का पहला पैरामीटर है।

इस प्रकार, आंशिक अनुप्रयोग एक निश्चित बिंदु पर एक नजदीकी कलन में कम हो जाता है। इसके अतिरिक्त, एक निश्चित बिंदु पर एक घुमावदार कार्य (तुच्छ रूप से), एक आंशिक अनुप्रयोग है। अधिक साक्ष्य के लिए, ध्यान दें कि, कोई भी फलन $$f(x,y)$$ दिया गया है, एक कलन $$g(y,x)$$ इस प्रकार $$g(y,x) = f(x,y)$$ परिभाषित किया जा सकता है. इस प्रकार, किसी भी आंशिक आवेदन को एक कर्र्यींग संचालन में घटाया जा सकता है। जैसे, कर्र्यींग को एक संचालन के रूप में अधिक उपयुक्त रूप से परिभाषित किया गया है, जो कई सैद्धांतिक स्थितियों में, अधिकांश पुनरावर्ती रूप से लागू होता है, लेकिन जो एक आंशिक अनुप्रयोग से सैद्धांतिक रूप से अप्रभेद्य है (जब एक संचालन के रूप में माना जाता है)।

तो, एक आंशिक अनुप्रयोग को कुछ फलन के इनपुट के कुछ क्रम पर कर्र्यींग संचालिका के एकल अनुप्रयोग के उद्देश्य परिणाम के रूप में परिभाषित किया जा सकता है।

यह भी देखें

 * टेंसर-होम संयोजन
 * आलसी मूल्यांकन
 * क्लोजर (संगणक साइंस)
 * एसएमएन प्रमेय |$S n m$प्रमेय
 * बंद मोनोइडल श्रेणी

इस पेज में लापता आंतरिक लिंक की सूची

 * अंक शास्त्र
 * कलन (गणित)
 * आंशिक आवेदन
 * लैम्ब्डा कैलकुलस
 * प्रोग्रामिंग भाषाओं में मौलिक अवधारणाएँ
 * क्रमित युग्म
 * कार्तीय गुणन
 * समुच्चय सिद्धान्त
 * कलन स्थान
 * द्विभाजन
 * अगर और केवल अगर
 * होमोटॉपी वर्ग
 * सहायक संचालिका
 * लिफ्ट (गणित)
 * लंबा सटीक क्रम
 * टेंसर उत्पाद
 * गुड़िया अनुक्रम
 * जाली (डोमेन)
 * होमोटॉपी प्रकार सिद्धांत
 * संचालिका साहचर्य
 * क्लोजर (संगणक साइंस)
 * प्रकार प्रणाली
 * कलन प्रकार
 * सरल रूप से टाइप किया हुआ लैम्ब्डा कैलकुलस
 * मोनोइडल श्रेणियां
 * टपल
 * सामग्री निहितार्थ (अनुमान का नियम)
 * समाकृतिकता
 * क्वांटम गणना
 * बस टाइप किया हुआ लैम्ब्डा कैलकुलस
 * पूर्ण आंशिक डोमेन
 * सदिश स्थल
 * रैखिक प्रकार प्रणाली
 * रैखिक तर्क
 * उलझी हुई क्वांटम अवस्थाएँ
 * arity

बाहरी संबंध

 * कर्र्यींगइंग Schonfinkelling at the Portland Pattern Repository
 * कर्र्यींगइंग != Generalized Partial Application! - post at Lambda-the-Ultimate.org