यूनिफ़ॉर्म फलन कॉल सिंटैक्स: Difference between revisions
(Created page with "{{Primary sources|date=September 2017}} यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनि...") |
No edit summary |
||
Line 1: | Line 1: | ||
यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनिफ़ॉर्म कॉलिंग सिंटेक्स (यूसीएस) या कभी-कभी यूनिवर्सल फ़ंक्शन कॉल सिंटेक्स [[डी ([[प्रोग्रामिंग भाषा|क्रमादेशन भाषा]])]] और [[निम (प्रोग्रामिंग भाषा)|निम (क्रमादेशन भाषा)]] में एक क्रमादेशन भाषा सुविधा है जो किसी भी फ़ंक्शन (अभिकलित्र क्रमादेशन) को कॉल करने की अनुमति देती है। पहले मापदंड के रूप में अभिग्राही ([[Index.php?title=वस्तु अभिमुखित क्रमादेशन|वस्तु अभिमुखित क्रमादेशन]]) और शेष मापदंड के रूप में दिए गए तर्कों का उपयोग करके विधि कॉल के लिए सिंटैक्स (वस्तु अभिमुखित क्रमादेशन) है।<ref>{{cite web|url=http://dlang.org/function.html#pseudo-member|title=कार्य - डी प्रोग्रामिंग भाषा|website=Dlang.org|accessdate=1 October 2017}}</ref> यूएफसीएस विशेष रूप से तब उपयोगी होता है जब फ़ंक्शन कॉल श्रृंखलित होते हैं<ref>{{cite web|url=http://ddili.org/ders/d.en/ufcs.html|title=डी में प्रोग्रामिंग - यूनिवर्सल फंक्शन कॉल सिंटैक्स (यूएफसीएस)|website=Ddili.org|accessdate=1 October 2017}}</ref> ([[Index.php?title=पाइप (अभिकलित्र विज्ञान)|पाइप (अभिकलित्र विज्ञान)]] के समान व्यवहार करना, या [[Index.php?title=अभिव्यक्ति (अभिकलित्र विज्ञान)|अभिव्यक्ति (अभिकलित्र विज्ञान)]] की एक श्रृंखला के माध्यम से मूल्यों को पारित करने के लिए [[कार्यात्मक भाषा]]ओं में उपलब्ध विभिन्न समर्पित [[Index.php?title=ऑपरेटर (अभिकलित्र क्रमादेशन)|ऑपरेटर (अभिकलित्र क्रमादेशन)]])। यह मुक्त-फ़ंक्शंस को कुछ अन्य भाषाओं में [[विस्तार विधि]]यों के समान भूमिका भरने की अनुमति देता है। विधि कॉल सिंटैक्स का एक अन्य लाभ एकीकृत विकास परिवेश में [[ डॉट-स्वत: पूर्ण |" डॉट-स्वत: पूर्ण"]] के साथ उपयोग है, जो संदर्भ पर निर्भर उपलब्ध कार्यों की सूची दिखाने के लिए टाइप जानकारी का उपयोग करता है। जब क्रमादेशक एक तर्क के साथ शुरू होता है, संभावित रूप से लागू कार्यों का सेट बहुत कम हो जाता है,<ref name="auto">{{cite web|title="यूनिफाइड कॉल सिंटैक्स"|url=https://isocpp.org/files/papers/N4165.pdf|format=PDF|website=Isocpp.org|accessdate=1 October 2017}}</ref> खोज में सहायता करना। | |||
यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनिफ़ॉर्म कॉलिंग सिंटेक्स (यूसीएस) या कभी-कभी यूनिवर्सल फ़ंक्शन कॉल सिंटेक्स [[डी ([[प्रोग्रामिंग भाषा]])]] और [[निम (प्रोग्रामिंग भाषा)]] में एक | |||
== उदाहरण == | == उदाहरण == | ||
=== निम | === निम क्रमादेशन भाषा === | ||
<syntaxhighlight lang="Nim"> | <syntaxhighlight lang="Nim"> | ||
type Vector = tuple[x, y: int] | type Vector = tuple[x, y: int] | ||
Line 22: | Line 21: | ||
=== डी | === डी क्रमादेशन भाषा === | ||
<syntaxhighlight lang="D"> | <syntaxhighlight lang="D"> | ||
import std.stdio; | import std.stdio; | ||
Line 56: | Line 55: | ||
== सी ++ प्रस्ताव == | == सी ++ प्रस्ताव == | ||
C++ मानकीकरण के शुरुआती वर्षों से सदस्य फ़ंक्शन और | C++ मानकीकरण के शुरुआती वर्षों से सदस्य फ़ंक्शन और मुक्त फ़ंक्शन कॉलिंग सिंटैक्स के एकीकरण के प्रस्तावों पर चर्चा की गई है। ग्लासबोरो (2004) ने एक समान कॉलिंग सिंटैक्स (यूसीएस) का प्रस्ताव दिया, विशेष रूप से एनोटेट मुक्त कार्यों को सदस्य फ़ंक्शन संकेतन के साथ बुलाए जाने की इजाजत दी।<ref>{{cite web|title=N1585: Uniform Calling Syntax (Re-opening public interfaces)|author=Francis Glassborow|date=2 May 2004|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1585.pdf|accessdate=17 December 2018}}</ref> | ||
यह हाल ही में | यह हाल ही में बज़्ने स्ट्रॉस्ट्रुप द्वारा C++ के अतिरिक्त प्रस्तावित (2016 तक) किया गया है<ref>{{cite web|title="यूएफसीएस प्रस्ताव"|url=http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4174.pdf|format=PDF|website=Open-std.org|accessdate=1 October 2017}}</ref> और [[हर्ब सटर]],<ref name="auto"/>[[Index.php?title=सामान्य क्रमदेशन|सामान्य क्रमदेशन]] के लेखन को सरल बनाने के लिए मुक्त फ़ंक्शन (सी ++) और सदस्य कार्यों को लिखने के बीच अस्पष्ट निर्णय को कम करने के लिए। सदस्य फ़ंक्शन सिंटैक्स का लाभ प्राप्त करने के लिए कई क्रमादेशक सदस्य फ़ंक्शन लिखने के लिए लुभाते हैं (उदाहरण के लिए डॉट-स्वत: पूर्ण सदस्य कार्यों को सूचीबद्ध करने के लिए);<ref>{{cite web|title=इंटेलिजेंस का उपयोग करना|url=https://msdn.microsoft.com/en-us/library/hcw1s69b.aspx|website=Msdn.microsoft.com|accessdate=1 October 2017}}</ref> हालाँकि, यह वर्ण (अभिकलित्र क्रमादेशन) के बीच अत्यधिक [[युग्मन (कंप्यूटर प्रोग्रामिंग)|युग्मन (अभिकलित्र क्रमादेशन)]] की ओर जाता है।<ref>{{cite web|title=कैसे गैर-सदस्य कार्य इनकैप्सुलेशन में सुधार करते हैं|url=https://www.drdobbs.com/cpp/how-non-member-functions-improve-encapsu/184401197|website=Drdobbs.com|accessdate=1 October 2017}}</ref> | ||
== शब्द का | == शब्द का रस्ट उपयोग == | ||
2018 तक वास्तव में [https://github.com/rust-lang/rfcs/issues/1140#issuecomment-108644620 योग्य/स्पष्ट पथ सिंटैक्स] का जिक्र करते समय इस शब्द का उपयोग करना आम था और आमतौर पर [https: // doc.rust-lang.org/1.30.0/book/2018-edition/ch19-03-advanced-traits.html?highlight=trait,function,call#fully-qualified-syntax-for-disambiguation-calling-methods- with-the-same-name पूरी तरह से योग्य पथ सिंटैक्स]।: क्योंकि एक ही संरचना पर लागू की गई एक ही विधि को परिभाषित करने वाले कई लक्षणों का होना संभव है, इस बात को स्पष्ट करने के लिए एक तंत्र की आवश्यकता होती है कि किस विशेषता का उपयोग किया जाना चाहिए। | 2018 तक वास्तव में [https://github.com/rust-lang/rfcs/issues/1140#issuecomment-108644620 योग्य/स्पष्ट पथ सिंटैक्स] का जिक्र करते समय इस शब्द का उपयोग करना आम था और आमतौर पर [https: // doc.rust-lang.org/1.30.0/book/2018-edition/ch19-03-advanced-traits.html?highlight=trait,function,call#fully-qualified-syntax-for-disambiguation-calling-methods- with-the-same-name पूरी तरह से योग्य पथ सिंटैक्स]।: क्योंकि एक ही संरचना पर लागू की गई एक ही विधि को परिभाषित करने वाले कई लक्षणों का होना संभव है, इस बात को स्पष्ट करने के लिए एक तंत्र की आवश्यकता होती है कि किस विशेषता का उपयोग किया जाना चाहिए। | ||
Line 68: | Line 67: | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[विशेषता (कंप्यूटर प्रोग्रामिंग)]] | * [[विशेषता (कंप्यूटर प्रोग्रामिंग)|विशेषता (अभिकलित्र क्रमादेशन)]] | ||
* [[इंटरफ़ेस (कंप्यूटर प्रोग्रामिंग)]] | * [[इंटरफ़ेस (कंप्यूटर प्रोग्रामिंग)|इंटरफ़ेस (अभिकलित्र क्रमादेशन)]] | ||
* [[ जाओ (प्रोग्रामिंग भाषा) ]], विधियों के लिए अधिक खुले दर्शन के साथ एक और भाषा | * [[ जाओ (प्रोग्रामिंग भाषा) | जाओ (क्रमादेशन भाषा)]] , विधियों के लिए अधिक खुले दर्शन के साथ एक और भाषा | ||
* [[लूस कपलिंग]] | * [[लूस कपलिंग]] | ||
* [[बतख टाइपिंग]] | * [[बतख टाइपिंग]] |
Revision as of 23:08, 26 May 2023
यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनिफ़ॉर्म कॉलिंग सिंटेक्स (यूसीएस) या कभी-कभी यूनिवर्सल फ़ंक्शन कॉल सिंटेक्स [[डी (क्रमादेशन भाषा)]] और निम (क्रमादेशन भाषा) में एक क्रमादेशन भाषा सुविधा है जो किसी भी फ़ंक्शन (अभिकलित्र क्रमादेशन) को कॉल करने की अनुमति देती है। पहले मापदंड के रूप में अभिग्राही (वस्तु अभिमुखित क्रमादेशन) और शेष मापदंड के रूप में दिए गए तर्कों का उपयोग करके विधि कॉल के लिए सिंटैक्स (वस्तु अभिमुखित क्रमादेशन) है।[1] यूएफसीएस विशेष रूप से तब उपयोगी होता है जब फ़ंक्शन कॉल श्रृंखलित होते हैं[2] (पाइप (अभिकलित्र विज्ञान) के समान व्यवहार करना, या अभिव्यक्ति (अभिकलित्र विज्ञान) की एक श्रृंखला के माध्यम से मूल्यों को पारित करने के लिए कार्यात्मक भाषाओं में उपलब्ध विभिन्न समर्पित ऑपरेटर (अभिकलित्र क्रमादेशन))। यह मुक्त-फ़ंक्शंस को कुछ अन्य भाषाओं में विस्तार विधियों के समान भूमिका भरने की अनुमति देता है। विधि कॉल सिंटैक्स का एक अन्य लाभ एकीकृत विकास परिवेश में " डॉट-स्वत: पूर्ण" के साथ उपयोग है, जो संदर्भ पर निर्भर उपलब्ध कार्यों की सूची दिखाने के लिए टाइप जानकारी का उपयोग करता है। जब क्रमादेशक एक तर्क के साथ शुरू होता है, संभावित रूप से लागू कार्यों का सेट बहुत कम हो जाता है,[3] खोज में सहायता करना।
उदाहरण
निम क्रमादेशन भाषा
type Vector = tuple[x, y: int]
proc add(a, b: Vector): Vector =
(a.x + b.x, a.y + b.y)
let
v1 = (x: -1, y: 4)
v2 = (x: 5, y: -2)
# all the following are correct
v3 = add(v1, v2)
v4 = v1.add(v2)
v5 = v1.add(v2).add(v4)
डी क्रमादेशन भाषा
import std.stdio;
int first(int[] arr)
{
return arr[0];
}
int[] addone(int[] arr)
{
int[] result;
foreach (value; arr) {
result ~= value + 1;
}
return result;
}
void main()
{
auto a = [0, 1, 2, 3];
// all the following are correct and equivalent
int b = first(a);
int c = a.first();
int d = a.first;
// chaining
int[] e = a.addone().addone();
}
सी ++ प्रस्ताव
C++ मानकीकरण के शुरुआती वर्षों से सदस्य फ़ंक्शन और मुक्त फ़ंक्शन कॉलिंग सिंटैक्स के एकीकरण के प्रस्तावों पर चर्चा की गई है। ग्लासबोरो (2004) ने एक समान कॉलिंग सिंटैक्स (यूसीएस) का प्रस्ताव दिया, विशेष रूप से एनोटेट मुक्त कार्यों को सदस्य फ़ंक्शन संकेतन के साथ बुलाए जाने की इजाजत दी।[4] यह हाल ही में बज़्ने स्ट्रॉस्ट्रुप द्वारा C++ के अतिरिक्त प्रस्तावित (2016 तक) किया गया है[5] और हर्ब सटर,[3]सामान्य क्रमदेशन के लेखन को सरल बनाने के लिए मुक्त फ़ंक्शन (सी ++) और सदस्य कार्यों को लिखने के बीच अस्पष्ट निर्णय को कम करने के लिए। सदस्य फ़ंक्शन सिंटैक्स का लाभ प्राप्त करने के लिए कई क्रमादेशक सदस्य फ़ंक्शन लिखने के लिए लुभाते हैं (उदाहरण के लिए डॉट-स्वत: पूर्ण सदस्य कार्यों को सूचीबद्ध करने के लिए);[6] हालाँकि, यह वर्ण (अभिकलित्र क्रमादेशन) के बीच अत्यधिक युग्मन (अभिकलित्र क्रमादेशन) की ओर जाता है।[7]
शब्द का रस्ट उपयोग
2018 तक वास्तव में योग्य/स्पष्ट पथ सिंटैक्स का जिक्र करते समय इस शब्द का उपयोग करना आम था और आमतौर पर [https: // doc.rust-lang.org/1.30.0/book/2018-edition/ch19-03-advanced-traits.html?highlight=trait,function,call#fully-qualified-syntax-for-disambiguation-calling-methods- with-the-same-name पूरी तरह से योग्य पथ सिंटैक्स]।: क्योंकि एक ही संरचना पर लागू की गई एक ही विधि को परिभाषित करने वाले कई लक्षणों का होना संभव है, इस बात को स्पष्ट करने के लिए एक तंत्र की आवश्यकता होती है कि किस विशेषता का उपयोग किया जाना चाहिए।
सदस्य कार्यों को योग्य (नामस्थान) पथ के माध्यम से मुक्त कार्यों के रूप में भी इस्तेमाल किया जा सकता है।
यूएफसीएस शब्द इन उपयोगों के लिए गलत है, क्योंकि यह (नाम स्थान) मुक्त कार्यों के रूप में विधियों का उपयोग करने की अनुमति देता है, लेकिन विधियों के रूप में मुक्त कार्यों का उपयोग नहीं करता है।
यह भी देखें
- विशेषता (अभिकलित्र क्रमादेशन)
- इंटरफ़ेस (अभिकलित्र क्रमादेशन)
- जाओ (क्रमादेशन भाषा) , विधियों के लिए अधिक खुले दर्शन के साथ एक और भाषा
- लूस कपलिंग
- बतख टाइपिंग
- विधि श्रृंखलन
संदर्भ
- ↑ "कार्य - डी प्रोग्रामिंग भाषा". Dlang.org. Retrieved 1 October 2017.
- ↑ "डी में प्रोग्रामिंग - यूनिवर्सल फंक्शन कॉल सिंटैक्स (यूएफसीएस)". Ddili.org. Retrieved 1 October 2017.
- ↑ 3.0 3.1 ""यूनिफाइड कॉल सिंटैक्स"" (PDF). Isocpp.org. Retrieved 1 October 2017.
- ↑ Francis Glassborow (2 May 2004). "N1585: Uniform Calling Syntax (Re-opening public interfaces)" (PDF). Retrieved 17 December 2018.
- ↑ ""यूएफसीएस प्रस्ताव"" (PDF). Open-std.org. Retrieved 1 October 2017.
- ↑ "इंटेलिजेंस का उपयोग करना". Msdn.microsoft.com. Retrieved 1 October 2017.
- ↑ "कैसे गैर-सदस्य कार्य इनकैप्सुलेशन में सुधार करते हैं". Drdobbs.com. Retrieved 1 October 2017.