कर्र्यींग (Currying): Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Transforming a function in such a way that it only takes a single argument}} {{about|the mathematical technique|the cooking process of this name|Curry|the...")
 
No edit summary
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Transforming a function in such a way that it only takes a single argument}}
{{short description|Transforming a function in such a way that it only takes a single argument}}
{{about|the mathematical technique|the cooking process of this name|Curry|the leather finishing process|Currier|horse grooming|Currycomb}}
गणित और [[कंप्यूटर विज्ञान|संगणक विज्ञान]] में, कर्र्यींग एक के मूल्यांकन का अनुवाद करने की विधि है जो फलनों के [[पैरामीटर (कंप्यूटर विज्ञान)|अनुक्रम (संगणक विज्ञान)]] का मूल्यांकन करने में कई तर्क लेता है, प्रत्येक एक तर्क के साथ है। उदाहरण के लिए, एक कलन <math>f</math> जो तीन तर्क लेता है, जिससे एक स्थिर एकल फलन <math>g</math> बनाता है, ताकि संकेत
गणित और [[कंप्यूटर विज्ञान]] में, करींग एक फ़ंक्शन (गणित) के मूल्यांकन का अनुवाद करने की तकनीक है जो कई [[पैरामीटर (कंप्यूटर विज्ञान)]] को कार्यों के अनुक्रम का मूल्यांकन करने में लेती है, प्रत्येक एक ही तर्क के साथ। उदाहरण के लिए, एक समारोह करी <math>f</math> जो तीन तर्क लेता है एक नेस्टेड यूनरी फ़ंक्शन बनाता है <math>g</math>, ताकि कोड
:<math>\text{let }x=f(a,b,c)</math>
:<math>\text{let }x=f(a,b,c)</math>
देता है <math>x</math> कोड के समान मूल्य
संकेत के समान मान <math>x</math> देता है
:<math>
:<math>
\begin{align}
\begin{align}
Line 14: Line 13:
या क्रम में कहा जाता है,
या क्रम में कहा जाता है,
:<math>\text{let }x = g(a)(b)(c).</math>
:<math>\text{let }x = g(a)(b)(c).</math>
अधिक गणितीय भाषा में, एक फ़ंक्शन जो दो तर्क लेता है, एक से <math>X</math> और एक से <math>Y</math>, और में आउटपुट उत्पन्न करता है <math>Z,</math> करी द्वारा एक ऐसे कार्य में अनुवादित किया जाता है जो एक तर्क लेता है <math>X</math> और आउटपुट के रूप में उत्पादन करता है <math>Y</math> प्रति <math>Z.</math> यह इन दो प्रकार के कार्यों के बीच एक स्वाभाविक एक-से-एक पत्राचार है, जिससे कि [[सेट (गणित)]] उनके बीच के कार्यों के साथ एक [[कार्टेशियन बंद श्रेणी]] बनाते हैं। दो से अधिक तर्कों वाले फ़ंक्शन की करी को तब प्रेरण द्वारा परिभाषित किया जा सकता है। करी संबंधित है, लेकिन आंशिक अनुप्रयोग के समान नहीं है।
गणितीय भाषा में अधिकतर, एक फलन जो दो तर्क लेता है, एक से <math>X</math> और दूसरे से <math>Y</math>, और <math>Z</math> में आउटपुट उत्पन्न करता है कर्र्यींगइंग द्वारा एक फलन में अनुवादित किया जाता है जो <math>X</math> से एकल तर्क लेता है और <math>Y</math> से <math>Z</math> तक आउटपुट फ़ंक्शन के रूप में उत्पन्न करता है।  यह इन दो प्रकार के फलनों के बीच एक स्वाभाविक एक-से-एक समतुल्यता है, जिससे कि [[सेट (गणित)]] उनके बीच के फलनों के साथ एक [[कार्टेशियन बंद श्रेणी|कार्तीय बंद श्रेणी]] बनाते हैं। दो से अधिक तर्कों वाले फलन की कर्र्यींग को तब प्रेरण द्वारा परिभाषित किया जा सकता है। कर्र्यींग संबंधित है, लेकिन आंशिक अनुप्रयोग के समान नहीं है।


करी करना व्यावहारिक और सैद्धांतिक दोनों स्थितियों में उपयोगी है। [[कार्यात्मक प्रोग्रामिंग भाषा]]ओं और कई अन्य भाषाओं में, यह स्वचालित रूप से प्रबंधित करने का एक तरीका प्रदान करता है कि फ़ंक्शन और अपवादों के लिए तर्क कैसे पास किए जाते हैं। [[सैद्धांतिक कंप्यूटर विज्ञान]] में, यह सरल सैद्धांतिक मॉडल में कई तर्कों के साथ कार्यों का अध्ययन करने का एक तरीका प्रदान करता है जो केवल एक तर्क प्रदान करता है। करी और अनकरींग की सख्त धारणा के लिए सबसे सामान्य सेटिंग [[बंद मोनोइडल श्रेणी]] में है, जो क्वांटम यांत्रिकी, कोबोर्डिज्म और स्ट्रिंग थ्योरी सहित कई अन्य संरचनाओं के साथ पत्राचार के लिए करी-हावर्ड पत्राचार के सबूत और कार्यक्रमों के विशाल सामान्यीकरण को रेखांकित करता है। .<ref name="rosetta"/>यह [[Gottlob Frege]] द्वारा पेश किया गया था,<ref name=Frege>[[Gottlob Frege]], ''Grundgesetze der Arithmetik'' I, Jena: Verlag Hermann Pohle, 1893, §36.</ref><ref name=:0>[[Willard Van Orman Quine]], introduction to [[Moses Schönfinkel]]'s "Bausteine der mathematischen Logik", pp.&nbsp;355&ndash;357, esp. 355. Translated by Stefan Bauer-Mengelberg as "On the building blocks of mathematical logic" in [[Jean van Heijenoort]] (1967), ''A Source Book in Mathematical Logic, 1879&ndash;1931''. Harvard University Press, pp. 355&ndash;66.</ref> मूसा शॉनफिंकेल द्वारा विकसित,<ref name=:0/><ref name=Strachey>{{cite journal|first=Christopher|last=Strachey|author-link=Christopher Strachey|title=प्रोग्रामिंग भाषाओं में मौलिक अवधारणाएँ|journal=[[Higher-Order and Symbolic Computation]]|volume=13|page=21|year=2000|quote=एकल ऑपरेंड ऑपरेटरों के क्रमिक अनुप्रयोग के लिए कई ऑपरेंड वाले ऑपरेटरों को कम करने के लिए शॉनफिंकेल द्वारा उत्पन्न एक उपकरण है।|doi=10.1023/A:1010000313106|s2cid=14124601 |citeseerx=10.1.1.332.3161}} (Reprinted lecture notes from 1967.)</ref><ref name=Reynolds>{{cite journal|first=John C.|last=Reynolds|author-link=John C. Reynolds|title=हायर-ऑर्डर प्रोग्रामिंग लैंग्वेज के लिए डेफिनिशनल इंटरप्रेटर|journal=Proceedings of the ACM Annual Conference|volume=2|issue=4|pages=717–740|doi=10.1145/800194.805852|quote=अंतिम पंक्ति में हमने बाइनरी ऑपरेशन को एक भाषा में शुरू करने की समस्या को हल करने के लिए करीइंग (तर्कशास्त्री एच. करी के बाद) नामक एक ट्रिक का उपयोग किया है जहां सभी कार्यों को एक ही तर्क को स्वीकार करना होगा। (रेफरी की टिप्पणी है कि हालांकि "करीइंग" स्वादिष्ट है, "शॉनफिंकेलिंग" अधिक सटीक हो सकता है।)|year=1972|s2cid=163294|url=https://surface.syr.edu/cgi/viewcontent.cgi?article=1012&context=lcsmith_other}}</ref><ref>Kenneth Slonneger and Barry L. Kurtz. ''Formal Syntax and Semantics of Programming Languages''. 1995. p.&nbsp;144.</ref>
कर्र्यींग करना व्यावहारिक और सैद्धांतिक दोनों स्थितियों में उपयोगी है। [[कार्यात्मक प्रोग्रामिंग भाषा|कार्यात्मक प्रोग्रामिंग भाषाओं]] और कई अन्य भाषाओं में, यह स्वचालित रूप से प्रबंधित करने का एक विधि प्रदान करता है कि फलन और अपवादों के लिए तर्क कैसे पास किए जाते हैं। [[सैद्धांतिक कंप्यूटर विज्ञान|सैद्धांतिक संगणक विज्ञान]] में, यह सरल सैद्धांतिक मॉडल में कई तर्कों के साथ फलनों का अध्ययन करने का एक विधि प्रदान करता है जो केवल एक तर्क प्रदान करता है। कर्र्यींग और अनकर्र्यींग की सख्त धारणा के लिए सबसे सामान्य सेटिंग [[बंद मोनोइडल श्रेणी]] में है, जो क्वांटम यांत्रिकी, कोबोर्डिज्म और स्ट्रिंग सिद्धांत सहित कई अन्य संरचनाओं के साथ समतुल्यता के लिए कर्र्यींग-हावर्ड समतुल्यता के सबूत और प्रोग्राम के विशाल सामान्यीकरण को रेखांकित करता है।<ref name="rosetta"/> यह [[Gottlob Frege|गोटलॉब फ्रेज]] द्वारा प्रस्तुत किया गया था,<ref name=Frege>[[Gottlob Frege]], ''Grundgesetze der Arithmetik'' I, Jena: Verlag Hermann Pohle, 1893, §36.</ref><ref name=:0>[[Willard Van Orman Quine]], introduction to [[Moses Schönfinkel]]'s "Bausteine der mathematischen Logik", pp.&nbsp;355&ndash;357, esp. 355. Translated by Stefan Bauer-Mengelberg as "On the building blocks of mathematical logic" in [[Jean van Heijenoort]] (1967), ''A Source Book in Mathematical Logic, 1879&ndash;1931''. Harvard University Press, pp. 355&ndash;66.</ref> मूसा शॉनफिंकेल द्वारा विकसित,<ref name=:0/><ref name=Strachey>{{cite journal|first=Christopher|last=Strachey|author-link=Christopher Strachey|title=प्रोग्रामिंग भाषाओं में मौलिक अवधारणाएँ|journal=[[Higher-Order and Symbolic Computation]]|volume=13|page=21|year=2000|quote=एकल ऑपरेंड ऑपरेटरों के क्रमिक अनुप्रयोग के लिए कई ऑपरेंड वाले ऑपरेटरों को कम करने के लिए शॉनफिंकेल द्वारा उत्पन्न एक उपकरण है।|doi=10.1023/A:1010000313106|s2cid=14124601 |citeseerx=10.1.1.332.3161}} (Reprinted lecture notes from 1967.)</ref><ref name=Reynolds>{{cite journal|first=John C.|last=Reynolds|author-link=John C. Reynolds|title=हायर-ऑर्डर प्रोग्रामिंग लैंग्वेज के लिए डेफिनिशनल इंटरप्रेटर|journal=Proceedings of the ACM Annual Conference|volume=2|issue=4|pages=717–740|doi=10.1145/800194.805852|quote=अंतिम पंक्ति में हमने बाइनरी ऑपरेशन को एक भाषा में शुरू करने की समस्या को हल करने के लिए करीइंग (तर्कशास्त्री एच. करी के बाद) नामक एक ट्रिक का उपयोग किया है जहां सभी कार्यों को एक ही तर्क को स्वीकार करना होगा। (रेफरी की टिप्पणी है कि हालांकि "करीइंग" स्वादिष्ट है, "शॉनफिंकेलिंग" अधिक सटीक हो सकता है।)|year=1972|s2cid=163294|url=https://surface.syr.edu/cgi/viewcontent.cgi?article=1012&context=lcsmith_other}}</ref><ref>Kenneth Slonneger and Barry L. Kurtz. ''Formal Syntax and Semantics of Programming Languages''. 1995. p.&nbsp;144.</ref> और आगे [[हास्केल करी|हास्केल कर्र्यींग]] द्वारा विकसित किया गया।<ref>Henk Barendregt, Erik Barendsen, "[http://www.nyu.edu/projects/barker/Lambda/barendregt.94.pdf Introduction to Lambda Calculus]", March 2000, page&nbsp;8.</ref><ref>{{cite book|last=Curry|first=Haskell|author2=Feys, Robert|title=संयोजन तर्क|publisher=North-Holland Publishing Company |volume=I|edition=2|year=1958|location=Amsterdam, Netherlands}}</ref>
और आगे [[हास्केल करी]] द्वारा विकसित किया गया।<ref>Henk Barendregt, Erik Barendsen, "[http://www.nyu.edu/projects/barker/Lambda/barendregt.94.pdf Introduction to Lambda Calculus]", March 2000, page&nbsp;8.</ref><ref>{{cite book|last=Curry|first=Haskell|author2=Feys, Robert|title=संयोजन तर्क|publisher=North-Holland Publishing Company |volume=I|edition=2|year=1958|location=Amsterdam, Netherlands}}</ref>
 
Uncurrying [[द्वैत (गणित)]] को करी करने के लिए परिवर्तन है, और इसे [[निष्क्रियता]] के एक रूप के रूप में देखा जा सकता है। यह एक कार्य (गणित) लेता है <math>f</math> जिसका रिटर्न वैल्यू एक और फंक्शन है <math>g</math>, और एक नया कार्य उत्पन्न करता है <math>f'</math> जो पैरामीटर के रूप में दोनों के लिए तर्क लेता है <math>f</math> तथा <math>g</math>, और रिटर्न, के आवेदन के परिणामस्वरूप <math>f</math> और बाद में, <math>g</math>, उन तर्कों के लिए। प्रक्रिया को पुनरावृत्त किया जा सकता है।
अनकर्र्यींग [[द्वैत (गणित)]] को कर्र्यींग करने के लिए परिवर्तन है, और इसे [[निष्क्रियता]] के एक रूप के रूप में देखा जा सकता है। यह एक फलन (गणित) <math>f</math> लेता है जिसका व्युत्क्रम मान एक और फलन <math>g</math> है, और एक नया फलन <math>f'</math>उत्पन्न करता है जो पैरामीटर के रूप में दोनों <math>f</math> के लिए तर्क लेता है, और <math>g</math> परिणामस्वरूप उन तर्कों के लिए <math>f</math> और बाद में,<math>g</math>,का अनुप्रयोग करता है। और इस प्रक्रिया को पुनरावृत्त किया जा सकता है।


== प्रेरणा ==
== प्रेरणा ==
करींग उन कार्यों के साथ काम करने का एक तरीका प्रदान करता है जो कई तर्क लेते हैं, और उन्हें ढांचे में उपयोग करते हैं जहां कार्य केवल एक तर्क ले सकते हैं। उदाहरण के लिए, कुछ #Definition केवल एक तर्क के साथ फ़ंक्शन (गणित) पर लागू किए जा सकते हैं। व्यावहारिक कार्य अक्सर इससे अधिक तर्क लेते हैं। गोटलॉब फ्रेग ने दिखाया कि यह एकल तर्क मामले के लिए समाधान प्रदान करने के लिए पर्याप्त था, क्योंकि एक फ़ंक्शन को कई तर्कों के साथ एकल-तर्क कार्यों की श्रृंखला में बदलना संभव था। यह परिवर्तन अब करी के रूप में जानी जाने वाली प्रक्रिया है।<ref>{{cite web|url=http://www.cs.nott.ac.uk/~gmh/faq.html#currying|title=Comp.lang.functional के लिए अक्सर पूछे जाने वाले प्रश्न: Currying|author=Graham Hutton|work=nott.ac.uk}}</ref> [[गणितीय विश्लेषण]] या [[कंप्यूटर प्रोग्रामिंग]] में आम तौर पर सामने आने वाले सभी सामान्य कार्यों को नियंत्रित किया जा सकता है। हालांकि, ऐसी श्रेणियां हैं जिनमें करी बनाना संभव नहीं है; करीने की अनुमति देने वाली सबसे सामान्य श्रेणियां बंद मोनोइडल श्रेणी हैं।
कर्र्यींग उन फलनों के साथ काम करने का एक विधि प्रदान करता है जो कई तर्क लेते हैं, और उन्हें संरचनाओं में उपयोग करते हैं जहां फलन केवल एक तर्क ले सकते हैं। उदाहरण के लिए, कुछ विश्लेषणात्मक विधियों को केवल एक ही तर्क वाले फलनों पर लागू किया जा सकता है। व्यावहारिक कार्य अधिकांश इससे अधिक तर्क लेते हैं। फ्रीज ने दिखाया कि यह एकल तर्क स्थितियों के लिए समाधान प्रदान करने के लिए पर्याप्त था, क्योंकि एक फलन को कई तर्कों के साथ एकल-तर्क फलनों की श्रृंखला में बदलना संभव था। यह परिवर्तन अब कर्र्यींग के रूप में जानी जाने वाली प्रक्रिया है।<ref>{{cite web|url=http://www.cs.nott.ac.uk/~gmh/faq.html#currying|title=Comp.lang.functional के लिए अक्सर पूछे जाने वाले प्रश्न: Currying|author=Graham Hutton|work=nott.ac.uk}}</ref> [[गणितीय विश्लेषण]] या [[कंप्यूटर प्रोग्रामिंग|संगणक प्रोग्रामिंग]] में सामान्यतः सामने आने वाले सभी सामान्य फलनों को नियंत्रित किया जा सकता है। चूंकि, ऐसी श्रेणियां हैं जिनमें कर्र्यींग बनाना संभव नहीं है; कर्र्यींगने की अनुमति देने वाली सबसे सामान्य श्रेणियां बंद मोनोइडल श्रेणी हैं।


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


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


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


:<math>h(x)(y)=x+y^2=f(x,y)</math>
:<math>h(x)(y)=x+y^2=f(x,y)</math>
ताकि मूल कार्य <math>f</math> और इसकी करी <math>h</math> बिल्कुल वही जानकारी दें। ऐसी स्थिति में हम लिखते भी हैं
ताकि मूल फलन <math>f</math> और इसकी कर्र्यींग <math>h</math> बिल्कुल समान जानकारी व्यक्त करें। ऐसी स्थिति में हम लिखते भी हैं


:<math>\text{curry}(f) = h.</math>
:<math>\text{curry}(f) = h.</math>
यह दो से अधिक तर्कों वाले कार्यों के लिए भी काम करता है। यदि <math>f</math> तीन तर्कों का एक कार्य था <math>f(x,y,z)</math>, इसकी करी <math>h</math> संपत्ति होगी
यह दो से अधिक तर्कों वाले फलनों के लिए भी काम करता है। यदि <math>f</math> तीन तर्कों का एक फलन <math>f(x,y,z)</math> था, इसकी कर्र्यींग <math>h</math> यह गुण होगा


:<math>f(x,y,z)=h(x)(y)(z).</math>
:<math>f(x,y,z)=h(x)(y)(z).</math>
Line 40: Line 39:


== इतिहास ==
== इतिहास ==
करी में करी तर्कशास्त्री हास्केल करी का एक संदर्भ है, जिन्होंने इस अवधारणा का व्यापक रूप से उपयोग किया था, लेकिन करी से 6 साल पहले मूसा शॉनफिंकेल का विचार था।<ref>{{cite journal |last1=Curry |first1=Haskell B. |title=कॉम्बिनेटरी लॉजिक के कुछ दार्शनिक पहलू|journal=Studies in Logic and the Foundations of Mathematics |date=1980 |volume=101 |pages=85–101 |doi=10.1016/S0049-237X(08)71254-0|isbn=9780444853455 |quote=कुछ समकालीन तर्कशास्त्री किसी फलन को देखने के इस तरीके को "करीइंग" कहते हैं, क्योंकि मैंने इसका व्यापक उपयोग किया है; लेकिन स्कोनफिंकल को इसका विचार मुझसे 6 साल पहले आया था।}}</ref> वैकल्पिक नाम Schonfinkelisation प्रस्तावित किया गया है।<ref>I. Heim and A. Kratzer (1998). ''Semantics in Generative Grammar''. Blackwell.</ref> गणितीय संदर्भ में, सिद्धांत को 1893 में गोटलॉब फ्रेज द्वारा काम पर वापस खोजा जा सकता है।<ref name=Frege/><ref name=:0/>
"कर्र्यींग" में "कर्र्यींग" तर्कशास्त्री हास्केल कर्र्यींग का एक संदर्भ है, जिन्होंने इस अवधारणा का व्यापक रूप से उपयोग किया था, लेकिन मोसेस शॉनफिंकेल को कर्र्यींग से 6 साल पहले यह विचार आया था।<ref>{{cite journal |last1=Curry |first1=Haskell B. |title=कॉम्बिनेटरी लॉजिक के कुछ दार्शनिक पहलू|journal=Studies in Logic and the Foundations of Mathematics |date=1980 |volume=101 |pages=85–101 |doi=10.1016/S0049-237X(08)71254-0|isbn=9780444853455 |quote=कुछ समकालीन तर्कशास्त्री किसी फलन को देखने के इस तरीके को "करीइंग" कहते हैं, क्योंकि मैंने इसका व्यापक उपयोग किया है; लेकिन स्कोनफिंकल को इसका विचार मुझसे 6 साल पहले आया था।}}</ref> वैकल्पिक नाम "शॉनफिंकेलाइजेशन" प्रस्तावित किया गया है।<ref>I. Heim and A. Kratzer (1998). ''Semantics in Generative Grammar''. Blackwell.</ref> गणितीय संदर्भ में, सिद्धांत को 1893 में गोटलॉब फ्रेज द्वारा काम करने के लिए वापस खोजा जा सकता है।<ref name=Frege/><ref name=:0/>


करींग शब्द का जनक स्पष्ट नहीं है। [[डेविड टर्नर (कंप्यूटर वैज्ञानिक)]] का कहना है कि यह शब्द [[क्रिस्टोफर स्ट्रेची]] द्वारा अपने 1967 के व्याख्यान नोट्स में मौलिक अवधारणाओं को प्रोग्रामिंग भाषाओं में गढ़ा गया था।<ref>{{cite web |last1=Turner |first1=David |title=प्रोग्रामिंग लैंग्वेज, करीइंग, या शोनफिंकलिंग?|url=http://computer-programming-forum.com/26-programming-language/976f118bb90d8b15.htm |website=computer-programming-forum.com |access-date=3 March 2022 |date=1 Jun 1997}}</ref> लेकिन यद्यपि अवधारणा का उल्लेख किया गया है, नोटों में करी शब्द प्रकट नहीं होता है।<ref name=Strachey/>जॉन सी रेनॉल्ड्स ने 1972 के पेपर में करी को परिभाषित किया, लेकिन इस शब्द को गढ़ने का दावा नहीं किया।<ref name=Reynolds/>
कर्र्यींग शब्द का जनक स्पष्ट नहीं है। [[डेविड टर्नर (कंप्यूटर वैज्ञानिक)|डेविड टर्नर (संगणक वैज्ञानिक)]] का कहना है कि यह शब्द [[क्रिस्टोफर स्ट्रेची]] द्वारा अपने 1967 के व्याख्यान नोट्स में मौलिक अवधारणाओं को प्रोग्रामिंग भाषाओं में गढ़ा गया था।<ref>{{cite web |last1=Turner |first1=David |title=प्रोग्रामिंग लैंग्वेज, करीइंग, या शोनफिंकलिंग?|url=http://computer-programming-forum.com/26-programming-language/976f118bb90d8b15.htm |website=computer-programming-forum.com |access-date=3 March 2022 |date=1 Jun 1997}}</ref> लेकिन यद्यपि अवधारणा का उल्लेख किया गया है, नोटों में कर्र्यींग शब्द प्रकट नहीं होता है।<ref name=Strachey/> जॉन सी रेनॉल्ड्स ने 1972 के पेपर में कर्र्यींग को परिभाषित किया, लेकिन इस शब्द को गढ़ने का दावा नहीं किया।<ref name=Reynolds/>




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


एक समारोह दिया
एक कलन दिया


:<math>f \colon (X \times Y) \to Z </math>,
:<math>f \colon (X \times Y) \to Z </math>,


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


:<math>h \colon X \to (Y \to Z) </math>.
:<math>h \colon X \to (Y \to Z) </math>.


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


:<math>h(x)(y)=f(x,y)</math>
:<math>h(x)(y)=f(x,y)</math>
के लिये <math>x</math> से <math>X</math> तथा <math>y</math> से <math>Y</math>. फिर हम भी लिखते हैं
<math>x</math> से <math>X</math> और <math>y</math> से <math>Y</math> के लिये. फिर हम भी लिखते हैं


:<math>\text{curry}(f)=h.</math>
:<math>\text{curry}(f)=h.</math>
अनकरींग रिवर्स ट्रांसफ़ॉर्मेशन है, और इसके सही आसन्न, लागू | फ़ंक्शन के संदर्भ में सबसे आसानी से समझा जाता है <math>\operatorname{apply}.</math>
अनकर्र्यींग व्युत्क्रम में परिवर्तन है, और इसे इसके दाहिने आसन्न फलन <math>\operatorname{apply}</math> के संदर्भ में सबसे आसानी से समझा जाता है


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


:<math>A^{B\times C}\cong (A^C)^B</math>
:<math>A^{B\times C}\cong (A^C)^B</math>
वास्तव में, यह प्राकृतिक आपत्ति है जो कार्यों के सेट के लिए [[घातीय संकेतन]] को सही ठहराती है। जैसा कि करीने के सभी उदाहरणों में होता है, ऊपर दिया गया सूत्र एक [[सहायक कारक]] का वर्णन करता है: प्रत्येक निश्चित सेट के लिए <math>C</math>, काम करनेवाला <math>B\mapsto B\times C</math> functor के पास छोड़ दिया जाता है <math>A \mapsto A^C</math>.
वास्तविक में, यह प्राकृतिक आपत्ति है जो फलनों के सेट के लिए [[घातीय संकेतन]] को सही ठहराती है। जैसा कि कर्र्यींगने के सभी उदाहरणों में होता है, ऊपर दिया गया सूत्र एक [[सहायक कारक]] का वर्णन करता है: प्रत्येक निश्चित सेट के लिए <math>C</math>, काम करनेवाला <math>B\mapsto B\times C</math> प्रकार्यक के पास <math>A \mapsto A^C</math>छोड़ दिया जाता है.


[[सेट की श्रेणी]] में, [[गणितीय वस्तु]] <math>Y^X</math> [[घातीय वस्तु]] कहा जाता है।
[[सेट की श्रेणी]] में, [[गणितीय वस्तु]] <math>Y^X</math> [[घातीय वस्तु]] कहा जाता है।


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


:<math>\text{curry}:\text{Hom}(X\times Y, Z) \to \text{Hom}(X, \text{Hom}(Y,Z)) ,</math>
:<math>\text{curry}:\text{Hom}(X\times Y, Z) \to \text{Hom}(X, \text{Hom}(Y,Z)) ,</math>
जबकि uncurrying उलटा नक्शा है। यदि सेट <math>Y^X</math> से निरंतर कार्यों की <math>X</math> प्रति <math>Y</math> [[कॉम्पैक्ट-ओपन टोपोलॉजी]] दी जाती है, और यदि स्पेस <math>Y</math> तब [[स्थानीय रूप से कॉम्पैक्ट हौसडॉर्फ]] है
जबकि अनकर्र्यींग व्युत्क्रम चित्र है। यदि सेट <math>Y^X</math> से निरंतर फलनों की <math>X</math> से <math>Y</math> विनिमेय[[कॉम्पैक्ट-ओपन टोपोलॉजी|-खुला टोपोलॉजी]] दी जाती है, और यदि स्पेस <math>Y</math> तब [[स्थानीय रूप से कॉम्पैक्ट हौसडॉर्फ|स्थानीय रूप से विनिमेय हौसडॉर्फ]] है


:<math>\text{curry} : Z^{X\times Y}\to (Z^Y)^X</math>
:<math>\text{curry} : Z^{X\times Y}\to (Z^Y)^X</math>
एक [[होमियोमोर्फिज्म]] है। ऐसा तब भी होता है जब <math>X</math>, <math>Y</math> तथा <math>Y^X</math> [[कॉम्पैक्ट रूप से उत्पन्न स्थान]] हैं,<ref name="may">J.P. May, ''[http://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf A Concise Course in Algebraic Topology]'', (1999) Chicago Lectures in Mathematics {{ISBN|0-226-51183-9}}</ref>{{rp|at=chapter 5}}<ref>{{nlab|id=compactly+generated+topological+space|title=Compactly generated topological space}}</ref> जबकि और भी मामले हैं।<ref>P. I. Booth and J. Tillotson, "[http://msp.org/pjm/1980/88-1/pjm-v88-n1-p03-s.pdf Monoidal closed, Cartesian closed and convenient categories of topological spaces]", ''Pacific Journal of Mathematics'', '''88''' (1980) pp.33-53.</ref><ref>{{nlab| convenient+category+of+topological+spaces | title=Convenient category of topological spaces}}</ref>
जब <math>X</math>, <math>Y</math> और <math>Y^X</math> [[कॉम्पैक्ट रूप से उत्पन्न स्थान|सघन से उत्पन्न होते]] हैं,<ref name="may">J.P. May, ''[http://www.math.uchicago.edu/~may/CONCISE/ConciseRevised.pdf A Concise Course in Algebraic Topology]'', (1999) Chicago Lectures in Mathematics {{ISBN|0-226-51183-9}}</ref>{{rp|at=chapter 5}}<ref>{{nlab|id=compactly+generated+topological+space|title=Compactly generated topological space}}</ref> तो फिर एक [[होमियोमोर्फिज्म]] होगा, जबकि और भी स्थितियां हैं।<ref>P. I. Booth and J. Tillotson, "[http://msp.org/pjm/1980/88-1/pjm-v88-n1-p03-s.pdf Monoidal closed, Cartesian closed and convenient categories of topological spaces]", ''Pacific Journal of Mathematics'', '''88''' (1980) pp.33-53.</ref><ref>{{nlab| convenient+category+of+topological+spaces | title=Convenient category of topological spaces}}</ref>
एक उपयोगी उपप्रमेय यह है कि एक फलन निरंतर होता है यदि और केवल यदि इसका करीड रूप निरंतर हो। एक अन्य महत्वपूर्ण परिणाम यह है कि [[लागू]], जिसे आमतौर पर इस संदर्भ में मूल्यांकन कहा जाता है, निरंतर है (ध्यान दें कि [[eval]] कंप्यूटर विज्ञान में एक पूरी तरह से अलग अवधारणा है।) अर्थात,
 
एक उपयोगी उपप्रमेय यह है कि एक फलन निरंतर होता है यदि और केवल यदि इसका कर्र्यींगड रूप निरंतर हो तो ही निरंतर फलन होगा। एक अन्य महत्वपूर्ण परिणाम यह है कि [[लागू|अनुप्रयोग  प्रतिचित्र]], जिसे सामान्यतः इस संदर्भ में "मूल्यांकन" कहा जाता है, निरंतर है (ध्यान दें कि [[eval]] संगणक विज्ञान में एक पूरी तरह से अलग अवधारणा है।) अर्थात,


<math>\begin{align} &&\text{eval}:Y^X \times X \to Y \\
<math>\begin{align} &&\text{eval}:Y^X \times X \to Y \\
                     && (f,x) \mapsto f(x) \end{align}</math>
                     && (f,x) \mapsto f(x) \end{align}</math>
निरंतर है जब <math>Y^X</math> कॉम्पैक्ट-ओपन है और <math>Y</math> स्थानीय रूप से कॉम्पैक्ट हौसडॉर्फ।<ref name=rotman>Joseph J. Rotman, ''An Introduction to Algebraic Topology'' (1988) Springer-Verlag {{ISBN|0-387-96678-1}} ''(See Chapter 11 for proof.)''</ref> [[होमोटॉपी]] की निरंतरता को स्थापित करने के लिए ये दो परिणाम केंद्रीय हैं, अर्थात कब <math>X</math> इकाई अंतराल है <math>I</math>, ताकि <math>Z^{I\times Y} \cong (Z^Y)^I</math> या तो दो कार्यों के होमोटॉपी के रूप में सोचा जा सकता है <math>Y</math> प्रति <math>Z</math>, या, समतुल्य, एक एकल (निरंतर) पथ <math>Z^Y</math>.


=== [[बीजगणितीय टोपोलॉजी]] ===
जब <math>Y^X</math> विनिमेय-खुला होता है और <math>Y</math> स्थानीय रूप से विनिमेय हौसडॉर्फ निरंतर फलन होता  है।<ref name="rotman">Joseph J. Rotman, ''An Introduction to Algebraic Topology'' (1988) Springer-Verlag {{ISBN|0-387-96678-1}} ''(See Chapter 11 for proof.)''</ref> [[होमोटॉपी]] की निरंतरता को स्थापित करने के लिए ये दो परिणाम केंद्रीय हैं, अर्थात जब <math>X</math> इकाई अंतराल <math>I</math> है, ताकि <math>Z^{I\times Y} \cong (Z^Y)^I</math> या तो दो फलनों  <math>Y</math> से <math>Z</math> के होमोटॉपी के रूप में सोचा जा सकता है, या, समतुल्य, एक एकल (निरंतर) पथ <math>Z^Y</math>है.
बीजगणितीय टोपोलॉजी में, करी एकमैन-हिल्टन द्वैत के उदाहरण के रूप में कार्य करता है, और, जैसे, विभिन्न सेटिंग्स में एक महत्वपूर्ण भूमिका निभाता है। उदाहरण के लिए, [[लूप स्पेस]] [[कम निलंबन]] के निकट है; इसे आमतौर पर इस रूप में लिखा जाता है
 
=== बीजगणितीय टोपोलॉजी ===
बीजगणितीय टोपोलॉजी में, कर्र्यींग एकमैन-हिल्टन द्वैत के उदाहरण के रूप में कार्य करता है, और, जैसे, विभिन्न सेटिंग्स में एक महत्वपूर्ण भूमिका निभाता है। उदाहरण के लिए, [[लूप स्पेस]] [[कम निलंबन]] के निकट है; इसे सामान्यतः इस रूप में लिखा जाता है
:<math>[\Sigma X,Z] \approxeq [X, \Omega Z]</math>
:<math>[\Sigma X,Z] \approxeq [X, \Omega Z]</math>
कहाँ पे <math>[A,B]</math> नक्शों की होमोटॉपी कक्षाओं का सेट है <math>A \rightarrow B</math>, तथा <math>\Sigma A</math> का [[निलंबन (टोपोलॉजी)]] है, और <math>\Omega A</math> का लूप स्पेस है। संक्षेप में, निलंबन <math>\Sigma X</math> के कार्टेशियन उत्पाद के रूप में देखा जा सकता है <math>X</math> इकाई अंतराल के साथ, अंतराल को लूप में बदलने के लिए एक तुल्यता संबंध मॉड्यूल करें। कढ़ी रूप तब अंतरिक्ष को मैप करता है <math>X</math> लूप्स से फ़ंक्शंस के स्थान पर <math>Z</math>, यानी से <math>X</math> में <math>\Omega Z</math>.<ref name=rotman/>फिर <math>\text{curry}</math> आसन्न फ़ंक्टर है जो लूप स्पेस के लिए निलंबन को मैप करता है, और अनकरीइंग डुअल है।<ref name=rotman/>
जहाँ <math>[A,B]</math> चित्रों की होमोटॉपी कक्षाओं का सेट है <math>A \rightarrow B</math>, और <math>\Sigma A</math> का [[निलंबन (टोपोलॉजी)]] है, और <math>\Omega A</math> का लूप स्पेस है। संक्षेप में, निलंबन <math>\Sigma X</math> के कार्तीय उत्पाद के रूप में देखा जा सकता है <math>X</math> इकाई अंतराल के साथ, अंतराल को लूप में बदलने के लिए एक तुल्यता संबंध मॉड्यूल करें। कर्र्यींगड अवस्था फिर <math>X</math> को लूप्स से <math>Z</math> में अर्थात् <math>X</math> से <math>\Omega Z</math> में फ़ंक्शन के स्थान पर चित्रण करता है।<ref name=rotman/> तब <math>\text{curry}</math> आसन्न फ़ंक्टर है जो लूप स्पेस के लिए निलंबन को चित्रण करता है, और अनकर्र्यींगइंग दोहरी है।<ref name=rotman/>


[[मैपिंग कोन (टोपोलॉजी)]] और मैपिंग फाइबर ([[cofibration]] और [[कंपन]]) के बीच द्वंद्व<ref name=may/>{{rp|at=chapters 6,7}} करीने के एक रूप के रूप में समझा जा सकता है, जो बदले में लंबे सटीक अनुक्रम और कॉक्सैक्ट पपी अनुक्रमों के द्वंद्व की ओर जाता है।
[[मैपिंग कोन (टोपोलॉजी)|चित्रण कोन (टोपोलॉजी)]] और चित्रण फाइबर ([[cofibration]] और [[कंपन]]) के बीच द्वंद्व<ref name=may/>{{rp|at=chapters 6,7}}को कर्र्यींगने के एक रूप के रूप में समझा जा सकता है, जो बदले में लंबे यथार्थ अनुक्रम और कॉक्सैक्ट पपी अनुक्रमों के द्वंद्व की ओर जाता है।


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


=== डोमेन सिद्धांत ===
=== डोमेन सिद्धांत ===
[[आदेश सिद्धांत]] में, अर्थात्, [[आंशिक रूप से आदेशित सेट]]ों के जाली (क्रम) का सिद्धांत, <math>\text{curry}</math> जाली को [[स्कॉट टोपोलॉजी]] दिए जाने पर एक सतत कार्य होता है।<ref>{{cite book |last1=Barendregt |first1=H.P. |author-link1=Henk Barendregt |title=लैम्ब्डा कैलकुलस|year=1984 |publisher=North-Holland |isbn=978-0-444-87508-2}} ''(See theorems 1.2.13, 1.2.14)''</ref> लैम्ब्डा कैलकुस के लिए शब्दार्थ प्रदान करने के प्रयास में स्कॉट-निरंतर कार्यों की पहली बार जांच की गई थी (जैसा कि सामान्य सेट सिद्धांत ऐसा करने के लिए अपर्याप्त है)। अधिक आम तौर पर, स्कॉट-निरंतर कार्यों का अध्ययन अब [[डोमेन सिद्धांत]] में किया जाता है, जिसमें कंप्यूटर एल्गोरिदम के [[सांकेतिक शब्दार्थ]] का अध्ययन शामिल है। ध्यान दें कि स्कॉट टोपोलॉजी [[टोपोलॉजिकल स्पेस की श्रेणी]] में आने वाली कई सामान्य टोपोलॉजी से काफी अलग है; स्कॉट टोपोलॉजी आमतौर पर [[अंतिम टोपोलॉजी]] है, और [[शांत स्थान]] नहीं है।
[[आदेश सिद्धांत|डोमेन सिद्धांत]] में, अर्थात्, [[आंशिक रूप से आदेशित सेट|आंशिक रूप से डोमेनित सेटों]] के जाली (क्रम) का सिद्धांत, <math>\text{curry}</math> एक सतत कार्य है जब जाली को [[स्कॉट टोपोलॉजी]] दिया जाता है।<ref>{{cite book |last1=Barendregt |first1=H.P. |author-link1=Henk Barendregt |title=लैम्ब्डा कैलकुलस|year=1984 |publisher=North-Holland |isbn=978-0-444-87508-2}} ''(See theorems 1.2.13, 1.2.14)''</ref> लैम्ब्डा कलन के लिए शब्दार्थ प्रदान करने के प्रयास में स्कॉट-निरंतर फलनों की पहली बार जांच की गई थी (जैसा कि सामान्य सेट सिद्धांत ऐसा करने के लिए अपर्याप्त है)। अधिक सामान्यतः, स्कॉट-निरंतर फलनों का अध्ययन अब [[डोमेन सिद्धांत]] में किया जाता है, जिसमें संगणक कलन विधि के [[सांकेतिक शब्दार्थ]] का अध्ययन सम्मिलित है। ध्यान दें कि स्कॉट टोपोलॉजी [[टोपोलॉजिकल स्पेस की श्रेणी]] में आने वाली कई सामान्य टोपोलॉजी से काफी अलग है; स्कॉट टोपोलॉजी सामान्यतः [[अंतिम टोपोलॉजी]] है, और [[शांत स्थान]] नहीं है।


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


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


:<math>\text{curry}(f) = \lambda x.(\lambda y.(f(x,y)))</math>
:<math>\text{curry}(f) = \lambda x.(\lambda y.(f(x,y)))</math>
कहाँ पे <math>\lambda</math> लैम्ब्डा कैलकुलस का अमूर्त है। चूंकि करी, इनपुट के रूप में, प्रकार के साथ कार्य करती है <math>(X\times Y)\to Z</math>, कोई निष्कर्ष निकालता है कि करी का प्रकार ही है
जहाँ  <math>\lambda</math> लैम्ब्डा गणना का अमूर्त है। चूंकि कर्र्यींग, इनपुट <math>(X\times Y)\to Z</math> के रूप में, प्रकार के साथ कार्य करती है, कोई यह निष्कर्ष निकालता है कि कर्र्यींग का प्रकार ही है


:<math>\text{curry}:((X \times Y)\to Z) \to (X \to (Y \to Z))</math>
:<math>\text{curry}:((X \times Y)\to Z) \to (X \to (Y \to Z))</math>
ऑपरेटर को अक्सर [[सही सहयोगी]] माना जाता है, इसलिए करी फ़ंक्शन प्रकार <math>X \to (Y \to Z)</math> अक्सर के रूप में लिखा जाता है <math>X \to Y \to Z</math>. इसके विपरीत, [[समारोह आवेदन]] को ऑपरेटर सहयोगीता माना जाता है | बाएं-सहयोगी, ताकि <math>f(x, y)</math> के बराबर है
संचालिका को अधिकांश [[सही सहयोगी]] माना जाता है, इसलिए कर्र्यींग फलन प्रकार <math>X \to (Y \to Z)</math> अधिकांश <math>X \to Y \to Z</math> के रूप में लिखा जाता है. इसके विपरीत, [[समारोह आवेदन|कलन आवेदन]] को संचालिका सहयोगीता माना जाता है | बाएं-सहयोगी, ताकि <math>f(x, y)</math> के बराबर है


:<math>((\text{curry}(f) \; x) \;y) = \text{curry}(f) \; x \;y</math>.
:<math>((\text{curry}(f) \; x) \;y) = \text{curry}(f) \; x \;y</math>.


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


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


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


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


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


=== तर्क ===
=== तर्क ===
करी-हावर्ड पत्राचार के तहत, करी और अनकरींग का अस्तित्व तार्किक प्रमेय के बराबर है <math>(A \land B) \to C \Leftrightarrow A \to (B \to C)</math>, क्योंकि टुपल्स (उत्पाद प्रकार) तर्क में संयोजन से मेल खाता है, और फ़ंक्शन प्रकार निहितार्थ से मेल खाता है।
कर्र्यींग-हावर्ड समतुल्यता के तहत, कर्र्यींग और अनकर्र्यींग का अस्तित्व तार्किक प्रमेय <math>(A \land B) \to C \Leftrightarrow A \to (B \to C)</math> के बराबर है, टुपल्स (उत्पाद प्रकार) के रूप में तर्क में संयोजन के अनुरूप है, और फलन प्रकार निहितार्थ के समान होता है।
 
घातीय वस्तु <math>Q^P</math> [[Heyting algebra]]s की श्रेणी में सामान्य रूप से [[सामग्री सशर्त]] के रूप में लिखा जाता है <math>P\to Q</math>. वितरण हेटिंग बीजगणित [[बूलियन बीजगणित]] हैं, और घातीय वस्तु का स्पष्ट रूप है <math>\neg P \lor Q</math>, इस प्रकार यह स्पष्ट करता है कि घातीय वस्तु वास्तव में भौतिक निहितार्थ (अनुमान का नियम) है।<ref>Saunders Mac Lane and Ieke Moerdijk, ''Sheaves in Geometry and Logic'' (1992) Springer {{ISBN|0-387-97710-4}} (''See Chapter 1, pp.48-57'')</ref>


घातीय वस्तु <math>Q^P</math> [[Heyting algebra|हेटिंग बीजगणित]] की श्रेणी में सामान्य रूप से [[सामग्री सशर्त]] <math>P\to Q</math> के रूप में लिखा जाता है. वितरण हेटिंग बीजगणित [[बूलियन बीजगणित]] हैं, और घातीय वस्तु <math>\neg P \lor Q</math> का स्पष्ट रूप है, इस प्रकार यह स्पष्ट करता है कि घातीय वस्तु वास्तव में भौतिक निहितार्थ (अनुमान का नियम) है।<ref>Saunders Mac Lane and Ieke Moerdijk, ''Sheaves in Geometry and Logic'' (1992) Springer {{ISBN|0-387-97710-4}} (''See Chapter 1, pp.48-57'')</ref>


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


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


:<math> \mathrm{Hom}(A\otimes B, C) \cong \mathrm{Hom}(A, B\Rightarrow C) .</math>
:<math> \mathrm{Hom}(A\otimes B, C) \cong \mathrm{Hom}(A, B\Rightarrow C) .</math>
यहाँ, होम श्रेणी में सभी morphisms के (बाहरी) होम-फ़ंक्टर को दर्शाता है, जबकि <math>B\Rightarrow C</math> बंद monoidal श्रेणी में आंतरिक होम functor को दर्शाता है। समुच्चयों की श्रेणी के लिए, दोनों समान हैं। जब उत्पाद कार्तीय उत्पाद है, तो आंतरिक होम <math>B\Rightarrow C</math> घातीय वस्तु बन जाती है <math>C^B</math>.
यहाँ, होम श्रेणी में सभी आकारिता के (बाहरी) होम-फ़ंक्टर को दर्शाता है, जबकि <math>B\Rightarrow C</math> बंद मोनोइडल श्रेणी में आंतरिक होम फ़ैक्टर को दर्शाता है। समुच्चयों की श्रेणी के लिए, दोनों समान हैं। जब उत्पाद कार्तीय उत्पाद है, तो आंतरिक होम <math>B\Rightarrow C</math> घातीय वस्तु <math>C^B</math> बन जाती है.


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


[[शास्त्रीय तर्क]] की चर्चा के लिए कार्टेशियन बंद श्रेणियों की सेटिंग पर्याप्त है; बंद मोनोइडल श्रेणियों की अधिक सामान्य सेटिंग क्वांटम संगणना के लिए उपयुक्त है।<ref>Samson Abramsky and Bob Coecke, "[https://arxiv.org/abs/quantph/0402130/ A Categorical Semantics for Quantum Protocols]."</ref>
[[शास्त्रीय तर्क|पारंपरिक तर्क]] की वाद विवाद के लिए कार्तीय बंद श्रेणियों की सेटिंग पर्याप्त है; बंद मोनोइडल श्रेणियों की अधिक सामान्य सेटिंग क्वांटम संगणना के लिए उपयुक्त है।<ref>Samson Abramsky and Bob Coecke, "[https://arxiv.org/abs/quantph/0402130/ A Categorical Semantics for Quantum Protocols]."</ref>
इन दोनों के बीच का अंतर यह है कि कार्टेशियन श्रेणियों के लिए [[उत्पाद (गणित)]] (जैसे सेट की श्रेणी, पूर्ण आंशिक ऑर्डर या हेटिंग बीजगणित) केवल कार्टेशियन उत्पाद है; इसकी व्याख्या वस्तुओं की एक क्रमबद्ध जोड़ी (या एक सूची) के रूप में की जाती है। बस टाइप किया गया लैम्ब्डा कैलकुस कार्टेशियन बंद श्रेणियों की आंतरिक भाषा है; और यह इस कारण से है कि जोड़े और सूचियाँ [[LISP]], [[योजना (प्रोग्रामिंग भाषा)]] और कई कार्यात्मक प्रोग्रामिंग भाषाओं के प्रकार सिद्धांत में प्राथमिक प्रकार की प्रणाली हैं।


इसके विपरीत, मोनोइडल श्रेणी के लिए उत्पाद (जैसे [[हिल्बर्ट अंतरिक्ष]] और कार्यात्मक विश्लेषण के वेक्टर रिक्त स्थान) टेंसर उत्पाद है। ऐसी श्रेणियों की आंतरिक भाषा रेखीय तर्क है, जो [[क्वांटम तर्क]] का एक रूप है; इसी प्रकार की प्रणाली रैखिक प्रकार की प्रणाली है। ऐसी श्रेणियां उलझी हुई क्वांटम अवस्थाओं का वर्णन करने के लिए उपयुक्त हैं, और, अधिक आम तौर पर, करी-हावर्ड पत्राचार को [[क्वांटम यांत्रिकी]], बीजगणितीय टोपोलॉजी में [[coboardism]] और [[स्ट्रिंग सिद्धांत]] के लिए एक विशाल सामान्यीकरण की अनुमति देती हैं।<ref name="rosetta">John C. Baez and Mike Stay, "[http://math.ucr.edu/home/baez/rosetta/rose3.pdf Physics, Topology, Logic and Computation: A Rosetta Stone]", (2009) [https://arxiv.org/abs/0903.0340/ ArXiv 0903.0340] in ''New Structures for Physics'', ed. Bob Coecke, ''Lecture Notes in Physics'' vol. '''813''', Springer, Berlin, 2011, pp. 95-174.</ref> रेखीय प्रकार प्रणाली, और रेखीय तर्क [[तुल्यकालन आदिम]]ों का वर्णन करने के लिए उपयोगी होते हैं, जैसे पारस्परिक बहिष्करण ताले, और वेंडिंग मशीनों का संचालन।
इन दोनों के बीच का अंतर यह है कि कार्तीय श्रेणियों के लिए [[उत्पाद (गणित)]] (जैसे सेट की श्रेणी, पूर्ण आंशिक ऑर्डर या हेटिंग बीजगणित) केवल कार्तीय उत्पाद है; इसकी व्याख्या वस्तुओं की एक क्रमबद्ध जोड़ी (या एक सूची) के रूप में की जाती है। बस टाइप किया गया लैम्ब्डा कलन कार्तीय बंद श्रेणियों की आंतरिक भाषा है; और यह इस कारण से है कि जोड़े और सूचियाँ [[LISP|एलआईएसपी]], [[योजना (प्रोग्रामिंग भाषा)]] और कई कार्यात्मक प्रोग्रामिंग भाषाओं के प्रकार सिद्धांत में प्राथमिक प्रकार की प्रणाली हैं।


== आंशिक फ़ंक्शन एप्लिकेशन == के साथ तुलना करें
इसके विपरीत, मोनोइडल श्रेणी के लिए उत्पाद (जैसे [[हिल्बर्ट अंतरिक्ष]] और कार्यात्मक विश्लेषण के वेक्टर रिक्त स्थान) टेंसर उत्पाद है। ऐसी श्रेणियों की आंतरिक भाषा रेखीय तर्क है, जो [[क्वांटम तर्क]] का एक रूप है; इसी प्रकार की प्रणाली रैखिक प्रकार की प्रणाली है। ऐसी श्रेणियां उलझी हुई क्वांटम अवस्थाओं का वर्णन करने के लिए उपयुक्त हैं, और, अधिक सामान्यतः, कर्र्यींग-हावर्ड समतुल्यता को [[क्वांटम यांत्रिकी]], बीजगणितीय टोपोलॉजी में [[coboardism|सहबोर्डवाद]] और [[स्ट्रिंग सिद्धांत]] के लिए एक विशाल सामान्यीकरण की अनुमति देती हैं।<ref name="rosetta">John C. Baez and Mike Stay, "[http://math.ucr.edu/home/baez/rosetta/rose3.pdf Physics, Topology, Logic and Computation: A Rosetta Stone]", (2009) [https://arxiv.org/abs/0903.0340/ ArXiv 0903.0340] in ''New Structures for Physics'', ed. Bob Coecke, ''Lecture Notes in Physics'' vol. '''813''', Springer, Berlin, 2011, pp. 95-174.</ref> रेखीय प्रकार प्रणाली, और रेखीय तर्क [[तुल्यकालन आदिम|तुल्यकालन आदिमों]] का वर्णन करने के लिए उपयोगी होते हैं, जैसे पारस्परिक बहिष्करण ताले, और वेंडिंग मशीनों का संचालन।
{{main article|Partial application}}
करी और आंशिक कार्य अनुप्रयोग अक्सर मिश्रित होते हैं।<ref>{{cite web|url=http://www.uncarved.com/articles/not_currying|archive-url=https://web.archive.org/web/20161023205431/http://www.uncarved.com/articles/not_currying|url-status=dead|archive-date=2016-10-23|title=द अनकार्व्ड ब्लॉग: आंशिक कार्य अनुप्रयोग करी नहीं है|work=uncarved.com}}</ref> दोनों के बीच महत्वपूर्ण अंतरों में से एक यह है कि आंशिक रूप से लागू किए गए फ़ंक्शन के लिए कॉल तुरंत परिणाम देता है, करींग श्रृंखला के नीचे कोई अन्य फ़ंक्शन नहीं; इस भेद को उन कार्यों के लिए स्पष्ट रूप से चित्रित किया जा सकता है जिनकी संख्या दो से अधिक है।<ref>{{cite web|url=http://slid.es/gsklee/functional-programming-in-5-minutes|title=5 मिनट में कार्यात्मक प्रोग्रामिंग|work=Slides}}</ref>
प्रकार का एक कार्य दिया <math>f \colon (X \times Y \times Z) \to N </math>, करी पैदा करता है <math>\text{curry}(f) \colon X \to (Y \to (Z \to N)) </math>. यही है, जबकि पहले फ़ंक्शन का मूल्यांकन इस रूप में प्रदर्शित किया जा सकता है <math>f(1, 2, 3)</math>, करीबी समारोह के मूल्यांकन के रूप में प्रतिनिधित्व किया जाएगा <math>f_\text{curried}(1)(2)(3)</math>, प्रत्येक तर्क को पिछले मंगलाचरण द्वारा लौटाए गए एकल-तर्क फ़ंक्शन के बदले में लागू करना। ध्यान दें कि कॉल करने के बाद <math>f_\text{curried}(1)</math>, हम एक ऐसे फ़ंक्शन के साथ बचे हैं जो एक तर्क लेता है और दूसरा फ़ंक्शन देता है, न कि एक ऐसा फ़ंक्शन जो दो तर्क लेता है।


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


सहज रूप से, आंशिक फ़ंक्शन एप्लिकेशन कहता है कि यदि आप फ़ंक्शन के पहले पैरामीटर (कंप्यूटर विज्ञान) को ठीक करते हैं, तो आपको शेष तर्कों का एक फ़ंक्शन मिलता है। उदाहरण के लिए, यदि फ़ंक्शन div डिवीजन ऑपरेशन x/y के लिए खड़ा है, तो पैरामीटर x के साथ div 1 पर तय किया गया है (यानी, div 1) एक और फ़ंक्शन है: फ़ंक्शन inv के समान जो इसके तर्क के गुणात्मक व्युत्क्रम को परिभाषित करता है, परिभाषित आमंत्रण द्वारा (y) = 1/y.
{{main article|आंशिक आवेदन}}


आंशिक अनुप्रयोग के लिए व्यावहारिक अभिप्रेरणा यह है कि बहुत बार किसी फलन के लिए सभी नहीं बल्कि कुछ तर्क देकर प्राप्त किए गए फलन उपयोगी होते हैं; उदाहरण के लिए, कई भाषाओं में समान कार्य या संचालिका होती है <code>plus_one</code>. आंशिक अनुप्रयोग इन कार्यों को परिभाषित करना आसान बनाता है, उदाहरण के लिए एक फ़ंक्शन बनाकर जो इसके पहले तर्क के रूप में 1 बाउंड के साथ अतिरिक्त ऑपरेटर का प्रतिनिधित्व करता है।
कर्र्यींग और आंशिक कार्य अनुप्रयोग अधिकांश मिश्रित होते हैं।<ref>{{cite web|url=http://www.uncarved.com/articles/not_currying|archive-url=https://web.archive.org/web/20161023205431/http://www.uncarved.com/articles/not_currying|url-status=dead|archive-date=2016-10-23|title=द अनकार्व्ड ब्लॉग: आंशिक कार्य अनुप्रयोग करी नहीं है|work=uncarved.com}}</ref> दोनों के बीच महत्वपूर्ण अंतरों में से एक अंतर यह है कि आंशिक रूप से लागू किए गए फलन के लिए कॉल तुरंत परिणाम देता है, कर्र्यींग श्रृंखला के नीचे कोई अन्य फलन नहीं; इस भेद को उन फलनों के लिए स्पष्ट रूप से चित्रित किया जा सकता है जिनकी संख्या दो से अधिक है।<ref>{{cite web|url=http://slid.es/gsklee/functional-programming-in-5-minutes|title=5 मिनट में कार्यात्मक प्रोग्रामिंग|work=Slides}}</ref>


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


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


तो, एक आंशिक अनुप्रयोग को कुछ फ़ंक्शन के इनपुट के कुछ क्रम पर करी ऑपरेटर के एकल अनुप्रयोग के उद्देश्य परिणाम के रूप में परिभाषित किया जा सकता है।
सहज रूप से, आंशिक फ़ंक्शन एप्लिकेशन कहता है "यदि आप फ़ंक्शन के पहले तर्क को ठीक करते हैं, तो आपको शेष तर्कों का एक फलन मिलता है"। उदाहरण के लिए, यदि फलन div डिवीजन संचालन x/y के लिए खड़ा है, तो पैरामीटर x के साथ div 1 पर तय किया गया है (अर्थात्, div 1) एक और फलन है: फलन inv के समान है ''inv''(''y'') = 1/''y'' द्वारा परिभाषित अपने तर्क का गुणक व्युत्क्रम लौटाता है।
 
आंशिक अनुप्रयोग के लिए व्यावहारिक अभिप्रेरणा यह है कि अधिकांश किसी फलन के लिए सभी नहीं बल्कि कुछ तर्क देकर प्राप्त किए गए फलन उपयोगी होते हैं; उदाहरण के लिए, कई भाषाओं में <code>plus_one</code> जैसा फलन या संचालिका होती है. आंशिक अनुप्रयोग इन फलनों को परिभाषित करना आसान बनाता है, उदाहरण के लिए एक फलन बनाकर जो इसके पहले तर्क के रूप में 1 बाउंड के साथ अतिरिक्त संचालिका का प्रतिनिधित्व करता है।
 
आंशिक अनुप्रयोग को एक निश्चित बिंदु पर एक निश्चित कार्य के मूल्यांकन के रूप में देखा जा सकता है, उदा। <math>f \colon (X \times Y \times Z) \to N </math>  और <math>a \in X</math> फिर <math>\text{curry}(\text{partial}(f)_a)(y)(z) = \text{curry}(f)(a)(y)(z) </math> या केवल <math>\text{partial}(f)_a = \text{curry}_1(f)(a) </math> जहाँ पे <math>\text{curry}_1</math> कर्र्यींग एफ का पहला पैरामीटर है।
 
इस प्रकार, आंशिक अनुप्रयोग एक निश्चित बिंदु पर एक नजदीकी कलन में कम हो जाता है। इसके अतिरिक्त, एक निश्चित बिंदु पर एक घुमावदार कार्य (तुच्छ रूप से), एक आंशिक अनुप्रयोग है। अधिक साक्ष्य के लिए, ध्यान दें कि, कोई भी फलन <math>f(x,y)</math> दिया गया है, एक कलन <math>g(y,x)</math> इस प्रकार <math>g(y,x) = f(x,y)</math> परिभाषित किया जा सकता है. इस प्रकार, किसी भी आंशिक आवेदन को एक कर्र्यींग संचालन में घटाया जा सकता है। जैसे, कर्र्यींग को एक संचालन के रूप में अधिक उपयुक्त रूप से परिभाषित किया गया है, जो कई सैद्धांतिक स्थितियों में, अधिकांश पुनरावर्ती रूप से लागू होता है, लेकिन जो एक आंशिक अनुप्रयोग से सैद्धांतिक रूप से अप्रभेद्य है (जब एक संचालन के रूप में माना जाता है)।
 
तो, एक आंशिक अनुप्रयोग को कुछ फलन के इनपुट के कुछ क्रम पर कर्र्यींग संचालिका के एकल अनुप्रयोग के उद्देश्य परिणाम के रूप में परिभाषित किया जा सकता है।


== यह भी देखें ==
== यह भी देखें ==
* टेंसर-होम संयोजन
* टेंसर-होम संयोजन
* [[आलसी मूल्यांकन]]
* [[आलसी मूल्यांकन]]
* क्लोजर (कंप्यूटर साइंस)
* क्लोजर (संगणक साइंस)
* एसएमएन प्रमेय |{{subsup|S|n|m}}प्रमेय
* एसएमएन प्रमेय |{{subsup|S|n|m}}प्रमेय
* बंद मोनोइडल श्रेणी
* बंद मोनोइडल श्रेणी
Line 190: Line 194:


*अंक शास्त्र
*अंक शास्त्र
*समारोह (गणित)
*कलन (गणित)
*आंशिक आवेदन
*आंशिक आवेदन
*लैम्ब्डा कैलकुलस
*लैम्ब्डा कैलकुलस
Line 197: Line 201:
*कार्तीय गुणन
*कार्तीय गुणन
*समुच्चय सिद्धान्त
*समुच्चय सिद्धान्त
*समारोह स्थान
*कलन स्थान
*द्विभाजन
*द्विभाजन
*अगर और केवल अगर
*अगर और केवल अगर
Line 206: Line 210:
*टेंसर उत्पाद
*टेंसर उत्पाद
*गुड़िया अनुक्रम
*गुड़िया अनुक्रम
*जाली (आदेश)
*जाली (डोमेन)
*होमोटॉपी प्रकार सिद्धांत
*होमोटॉपी प्रकार सिद्धांत
*ऑपरेटर साहचर्य
*संचालिका साहचर्य
*क्लोजर (कंप्यूटर साइंस)
*क्लोजर (संगणक साइंस)
*प्रकार प्रणाली
*प्रकार प्रणाली
*समारोह प्रकार
*कलन प्रकार
*सरल रूप से टाइप किया हुआ लैम्ब्डा कैलकुलस
*सरल रूप से टाइप किया हुआ लैम्ब्डा कैलकुलस
*मोनोइडल श्रेणियां
*मोनोइडल श्रेणियां
Line 219: Line 223:
*क्वांटम गणना
*क्वांटम गणना
*बस टाइप किया हुआ लैम्ब्डा कैलकुलस
*बस टाइप किया हुआ लैम्ब्डा कैलकुलस
*पूर्ण आंशिक आदेश
*पूर्ण आंशिक डोमेन
*सदिश स्थल
*सदिश स्थल
*रैखिक प्रकार प्रणाली
*रैखिक प्रकार प्रणाली
Line 227: Line 231:
== बाहरी संबंध ==
== बाहरी संबंध ==
{{Wiktionary|currying}}
{{Wiktionary|currying}}
*[http://c2.com/cgi/wiki?CurryingSchonfinkelling Currying Schonfinkelling] at the [[Portland Pattern Repository]]
*[[wiki:CurryingSchonfinkelling|कर्र्यींगइंग Schonfinkelling]] at the [[Portland Pattern Repository]]
*[http://lambda-the-ultimate.org/node/2266 Currying != Generalized Partial Application!] - post at Lambda-the-Ultimate.org
*[http://lambda-the-ultimate.org/node/2266 कर्र्यींगइंग != Generalized Partial Application!] - post at Lambda-the-Ultimate.org


{{Design Patterns Patterns}}
{{Design Patterns Patterns}}
[[Category: उच्च क्रम के कार्य]]
[[Category: कार्यात्मक प्रोग्रामिंग]]
[[Category: लैम्ब्डा कैलकुलस]]
[[Category: जावा कोड के उदाहरण के साथ लेख]]


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with short description]]
[[Category:CS1 français-language sources (fr)]]
[[Category:CS1 maint]]
[[Category:CS1 Ελληνικά-language sources (el)]]
[[Category:Citation Style 1 templates|W]]
[[Category:Collapse templates]]
[[Category:Created On 30/11/2022]]
[[Category:Created On 30/11/2022]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates based on the Citation/CS1 Lua module]]
[[Category:Templates generating COinS|Cite web]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates used by AutoWikiBrowser|Cite web]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia fully protected templates|Cite web]]
[[Category:Wikipedia metatemplates]]
[[Category:उच्च क्रम के कार्य]]
[[Category:कार्यात्मक प्रोग्रामिंग]]
[[Category:जावा कोड के उदाहरण के साथ लेख]]
[[Category:लैम्ब्डा कैलकुलस]]

Latest revision as of 15:20, 29 December 2022

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

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

या क्रम में कहा जाता है,

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

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

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

प्रेरणा

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

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

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

चित्रण

मान लीजिए हमारे पास एक कलन है जो दो वास्तविक संख्या () लेता है और वास्तविक संख्या को आउटपुट करता है, और इसके द्वारा परिभाषित किया जाता है. कर्र्यींग इसे एक कलन में अनुवादित करता है जो एक वास्तविक तर्क लेता है और से फलनों को आउटपुट करता है. प्रतीकों में, , जहाँ उन सभी फलनों के सेट को दर्शाता है जो एक वास्तविक तर्क लेते हैं और वास्तविक आउटपुट उत्पन्न करते हैं। प्रत्येक वास्तविक संख्या के लिए , फलन को परिभाषित करें द्वारा , और उसके बाद फलन द्वारा को परिभाषित करें. तो उदाहरण के लिए, वह फलन है जो अपना वास्तविक तर्क आउटपुट के लिए , या भेजता है. हम इसे सामान्य तौर पर देखते हैं

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

यह दो से अधिक तर्कों वाले फलनों के लिए भी काम करता है। यदि तीन तर्कों का एक फलन था, इसकी कर्र्यींग यह गुण होगा


इतिहास

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

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


परिभाषा

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

एक कलन दिया

,

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

.

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

से और से के लिये. फिर हम भी लिखते हैं

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

सेट सिद्धांत

सेट सिद्धांत में, संकेतन सेट से फलनों के सेट (गणित) सेट पर को निरूपित करने के लिए उपयोग किया जाता है. कर्र्यींग सेट से फलनों की से के बीच प्राकृतिक समानता है, और सेट से फलनों की फलनों के सेट से से . प्रतीकों में:

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

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

कलन रिक्त स्थान

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

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

जब , और सघन से उत्पन्न होते हैं,[13]: chapter 5 [14] तो फिर एक होमियोमोर्फिज्म होगा, जबकि और भी स्थितियां हैं।[15][16]

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

जब विनिमेय-खुला होता है और स्थानीय रूप से विनिमेय हौसडॉर्फ निरंतर फलन होता है।[17] होमोटॉपी की निरंतरता को स्थापित करने के लिए ये दो परिणाम केंद्रीय हैं, अर्थात जब इकाई अंतराल है, ताकि या तो दो फलनों से के होमोटॉपी के रूप में सोचा जा सकता है, या, समतुल्य, एक एकल (निरंतर) पथ है.

बीजगणितीय टोपोलॉजी

बीजगणितीय टोपोलॉजी में, कर्र्यींग एकमैन-हिल्टन द्वैत के उदाहरण के रूप में कार्य करता है, और, जैसे, विभिन्न सेटिंग्स में एक महत्वपूर्ण भूमिका निभाता है। उदाहरण के लिए, लूप स्पेस कम निलंबन के निकट है; इसे सामान्यतः इस रूप में लिखा जाता है

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

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

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

डोमेन सिद्धांत

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

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

लैम्ब्डा गणना

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

जहाँ लैम्ब्डा गणना का अमूर्त है। चूंकि कर्र्यींग, इनपुट के रूप में, प्रकार के साथ कार्य करती है, कोई यह निष्कर्ष निकालता है कि कर्र्यींग का प्रकार ही है

→ संचालिका को अधिकांश सही सहयोगी माना जाता है, इसलिए कर्र्यींग फलन प्रकार अधिकांश के रूप में लिखा जाता है. इसके विपरीत, कलन आवेदन को संचालिका सहयोगीता माना जाता है | बाएं-सहयोगी, ताकि के बराबर है

.

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

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

प्रकार सिद्धांत

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

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

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

तर्क

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

घातीय वस्तु हेटिंग बीजगणित की श्रेणी में सामान्य रूप से सामग्री सशर्त के रूप में लिखा जाता है. वितरण हेटिंग बीजगणित बूलियन बीजगणित हैं, और घातीय वस्तु का स्पष्ट रूप है, इस प्रकार यह स्पष्ट करता है कि घातीय वस्तु वास्तव में भौतिक निहितार्थ (अनुमान का नियम) है।[19]

श्रेणी सिद्धांत

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

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

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

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

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

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

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

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

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

प्रप्रकार के एक फलन को देखते हुए, कर्र्यींग उत्पन करता है. अर्थात्, जबकि पहले फलन का मूल्यांकन इस रूप में प्रदर्शित किया जा सकता है, नजदीकी कलन के मूल्यांकन के रूप में प्रतिनिधित्व किया जाएगा, प्रत्येक तर्क को पिछले उत्क्रियण द्वारा लौटाए गए एकल-तर्क फलन के बदले में लागू करना है। ध्यान दें कि कॉल करने के बाद , हम एक ऐसे फलन के साथ बचे हैं जो एक तर्क लेता है और दूसरा फलन देता है, ऐसा फलन नहीं जो दो तर्क लेता है।

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

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

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

आंशिक अनुप्रयोग को एक निश्चित बिंदु पर एक निश्चित कार्य के मूल्यांकन के रूप में देखा जा सकता है, उदा। और फिर या केवल जहाँ पे कर्र्यींग एफ का पहला पैरामीटर है।

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

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

यह भी देखें

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

टिप्पणियाँ

  1. 1.0 1.1 John C. Baez and Mike Stay, "Physics, Topology, Logic and Computation: A Rosetta Stone", (2009) ArXiv 0903.0340 in New Structures for Physics, ed. Bob Coecke, Lecture Notes in Physics vol. 813, Springer, Berlin, 2011, pp. 95-174.
  2. 2.0 2.1 Gottlob Frege, Grundgesetze der Arithmetik I, Jena: Verlag Hermann Pohle, 1893, §36.
  3. 3.0 3.1 3.2 Willard Van Orman Quine, introduction to Moses Schönfinkel's "Bausteine der mathematischen Logik", pp. 355–357, esp. 355. Translated by Stefan Bauer-Mengelberg as "On the building blocks of mathematical logic" in Jean van Heijenoort (1967), A Source Book in Mathematical Logic, 1879–1931. Harvard University Press, pp. 355–66.
  4. 4.0 4.1 Strachey, Christopher (2000). "प्रोग्रामिंग भाषाओं में मौलिक अवधारणाएँ". Higher-Order and Symbolic Computation. 13: 21. CiteSeerX 10.1.1.332.3161. doi:10.1023/A:1010000313106. S2CID 14124601. एकल ऑपरेंड ऑपरेटरों के क्रमिक अनुप्रयोग के लिए कई ऑपरेंड वाले ऑपरेटरों को कम करने के लिए शॉनफिंकेल द्वारा उत्पन्न एक उपकरण है। (Reprinted lecture notes from 1967.)
  5. 5.0 5.1 Reynolds, John C. (1972). "हायर-ऑर्डर प्रोग्रामिंग लैंग्वेज के लिए डेफिनिशनल इंटरप्रेटर". Proceedings of the ACM Annual Conference. 2 (4): 717–740. doi:10.1145/800194.805852. S2CID 163294. अंतिम पंक्ति में हमने बाइनरी ऑपरेशन को एक भाषा में शुरू करने की समस्या को हल करने के लिए करीइंग (तर्कशास्त्री एच. करी के बाद) नामक एक ट्रिक का उपयोग किया है जहां सभी कार्यों को एक ही तर्क को स्वीकार करना होगा। (रेफरी की टिप्पणी है कि हालांकि "करीइंग" स्वादिष्ट है, "शॉनफिंकेलिंग" अधिक सटीक हो सकता है।)
  6. Kenneth Slonneger and Barry L. Kurtz. Formal Syntax and Semantics of Programming Languages. 1995. p. 144.
  7. Henk Barendregt, Erik Barendsen, "Introduction to Lambda Calculus", March 2000, page 8.
  8. Curry, Haskell; Feys, Robert (1958). संयोजन तर्क. Vol. I (2 ed.). Amsterdam, Netherlands: North-Holland Publishing Company.
  9. Graham Hutton. "Comp.lang.functional के लिए अक्सर पूछे जाने वाले प्रश्न: Currying". nott.ac.uk.
  10. Curry, Haskell B. (1980). "कॉम्बिनेटरी लॉजिक के कुछ दार्शनिक पहलू". Studies in Logic and the Foundations of Mathematics. 101: 85–101. doi:10.1016/S0049-237X(08)71254-0. ISBN 9780444853455. कुछ समकालीन तर्कशास्त्री किसी फलन को देखने के इस तरीके को "करीइंग" कहते हैं, क्योंकि मैंने इसका व्यापक उपयोग किया है; लेकिन स्कोनफिंकल को इसका विचार मुझसे 6 साल पहले आया था।
  11. I. Heim and A. Kratzer (1998). Semantics in Generative Grammar. Blackwell.
  12. Turner, David (1 Jun 1997). "प्रोग्रामिंग लैंग्वेज, करीइंग, या शोनफिंकलिंग?". computer-programming-forum.com. Retrieved 3 March 2022.
  13. 13.0 13.1 J.P. May, A Concise Course in Algebraic Topology, (1999) Chicago Lectures in Mathematics ISBN 0-226-51183-9
  14. Compactly generated topological space at the nLab
  15. P. I. Booth and J. Tillotson, "Monoidal closed, Cartesian closed and convenient categories of topological spaces", Pacific Journal of Mathematics, 88 (1980) pp.33-53.
  16. Convenient category of topological spaces at the nLab
  17. 17.0 17.1 17.2 Joseph J. Rotman, An Introduction to Algebraic Topology (1988) Springer-Verlag ISBN 0-387-96678-1 (See Chapter 11 for proof.)
  18. Barendregt, H.P. (1984). लैम्ब्डा कैलकुलस. North-Holland. ISBN 978-0-444-87508-2. (See theorems 1.2.13, 1.2.14)
  19. Saunders Mac Lane and Ieke Moerdijk, Sheaves in Geometry and Logic (1992) Springer ISBN 0-387-97710-4 (See Chapter 1, pp.48-57)
  20. Samson Abramsky and Bob Coecke, "A Categorical Semantics for Quantum Protocols."
  21. "द अनकार्व्ड ब्लॉग: आंशिक कार्य अनुप्रयोग करी नहीं है". uncarved.com. Archived from the original on 2016-10-23.
  22. "5 मिनट में कार्यात्मक प्रोग्रामिंग". Slides.


संदर्भ


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

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

बाहरी संबंध