यूनिफ़ॉर्म फलन कॉल सिंटैक्स: Difference between revisions

From Vigyanwiki
(Created page with "{{Primary sources|date=September 2017}} यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनि...")
 
No edit summary
Line 1: Line 1:
{{Primary sources|date=September 2017}}
यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनिफ़ॉर्म कॉलिंग सिंटेक्स (यूसीएस) या कभी-कभी यूनिवर्सल फ़ंक्शन कॉल सिंटेक्स [[डी ([[प्रोग्रामिंग भाषा|क्रमादेशन भाषा]])]] और [[निम (प्रोग्रामिंग भाषा)|निम (क्रमादेशन भाषा)]] में एक क्रमादेशन भाषा सुविधा है जो किसी भी फ़ंक्शन (अभिकलित्र क्रमादेशन) को कॉल करने की अनुमति देती है। पहले मापदंड के रूप में अभिग्राही ([[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> खोज में सहायता करना।
यूनिफ़ॉर्म फ़ंक्शन कॉल सिंटैक्स (यूएफसीएस) या यूनिफ़ॉर्म कॉलिंग सिंटेक्स (यूसीएस) या कभी-कभी यूनिवर्सल फ़ंक्शन कॉल सिंटेक्स [[डी ([[प्रोग्रामिंग भाषा]])]] और [[निम (प्रोग्रामिंग भाषा)]] में एक प्रोग्रामिंग भाषा सुविधा है जो किसी भी फ़ंक्शन (कंप्यूटर प्रोग्रामिंग) को कॉल करने की अनुमति देती है। पहले पैरामीटर के रूप में रिसीवर ([[ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]]) और शेष पैरामीटर के रूप में दिए गए तर्कों का उपयोग करके विधि कॉल के लिए सिंटैक्स (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में)<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> ([[पाइप (कंप्यूटर विज्ञान)]] के समान व्यवहार करना, या [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] की एक श्रृंखला के माध्यम से मूल्यों को पारित करने के लिए [[कार्यात्मक भाषा]]ओं में उपलब्ध विभिन्न समर्पित [[ऑपरेटर (कंप्यूटर प्रोग्रामिंग)]])। यह फ्री-फ़ंक्शंस को कुछ अन्य भाषाओं में [[विस्तार विधि]]यों के समान भूमिका भरने की अनुमति देता है। मेथड कॉल सिंटैक्स का एक अन्य लाभ एकीकृत विकास परिवेश में [[ डॉट-स्वत: पूर्ण ]] के साथ उपयोग है, जो संदर्भ पर निर्भर उपलब्ध कार्यों की सूची दिखाने के लिए प्रकार की जानकारी का उपयोग करता है। जब प्रोग्रामर एक तर्क के साथ शुरू होता है, संभावित रूप से लागू कार्यों का सेट बहुत कम हो जाता है,<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++ मानकीकरण के शुरुआती वर्षों से सदस्य फ़ंक्शन और फ्री फ़ंक्शन कॉलिंग सिंटैक्स के एकीकरण के प्रस्तावों पर चर्चा की गई है। ग्लासबोरो (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++ मानकीकरण के शुरुआती वर्षों से सदस्य फ़ंक्शन और मुक्त फ़ंक्शन कॉलिंग सिंटैक्स के एकीकरण के प्रस्तावों पर चर्चा की गई है। ग्लासबोरो (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>
यह हाल ही में [[Bjarne Stroustrup]] द्वारा 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"/>[[सामान्य प्रोग्रामिंग]] के लेखन को सरल बनाने के लिए मुक्त फ़ंक्शन (सी ++) एस और सदस्य कार्यों को लिखने के बीच अस्पष्ट निर्णय को कम करने के लिए। सदस्य फ़ंक्शन सिंटैक्स का लाभ प्राप्त करने के लिए कई प्रोग्रामर सदस्य फ़ंक्शन लिखने के लिए लुभाते हैं (उदाहरण के लिए डॉट-स्वत: पूर्ण सदस्य कार्यों को सूचीबद्ध करने के लिए);<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>
यह हाल ही में बज़्ने स्ट्रॉस्ट्रुप द्वारा 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 पूरी तरह से योग्य पथ सिंटैक्स]।: क्योंकि एक ही संरचना पर लागू की गई एक ही विधि को परिभाषित करने वाले कई लक्षणों का होना संभव है, इस बात को स्पष्ट करने के लिए एक तंत्र की आवश्यकता होती है कि किस विशेषता का उपयोग किया जाना चाहिए।

सदस्य कार्यों को योग्य (नामस्थान) पथ के माध्यम से मुक्त कार्यों के रूप में भी इस्तेमाल किया जा सकता है।

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

यह भी देखें

संदर्भ

  1. "कार्य - डी प्रोग्रामिंग भाषा". Dlang.org. Retrieved 1 October 2017.
  2. "डी में प्रोग्रामिंग - यूनिवर्सल फंक्शन कॉल सिंटैक्स (यूएफसीएस)". Ddili.org. Retrieved 1 October 2017.
  3. 3.0 3.1 ""यूनिफाइड कॉल सिंटैक्स"" (PDF). Isocpp.org. Retrieved 1 October 2017.
  4. Francis Glassborow (2 May 2004). "N1585: Uniform Calling Syntax (Re-opening public interfaces)" (PDF). Retrieved 17 December 2018.
  5. ""यूएफसीएस प्रस्ताव"" (PDF). Open-std.org. Retrieved 1 October 2017.
  6. "इंटेलिजेंस का उपयोग करना". Msdn.microsoft.com. Retrieved 1 October 2017.
  7. "कैसे गैर-सदस्य कार्य इनकैप्सुलेशन में सुधार करते हैं". Drdobbs.com. Retrieved 1 October 2017.