सिंबल (प्रोग्रामिंग): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Datatype in programming}} कंप्यूटर प्रोग्रामिंग में एक प्रतीक एक आदिम ड...")
 
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Datatype in programming}}
{{Short description|Datatype in programming}}
[[कंप्यूटर प्रोग्रामिंग]] में एक प्रतीक एक [[आदिम डेटा प्रकार]] है जिसका इंस्टेंस (कंप्यूटर विज्ञान) एक अद्वितीय मानव-पठनीय रूप है। प्रतीकों का उपयोग पहचानकर्ता (कंप्यूटर भाषा) के रूप में किया जा सकता है। कुछ [[प्रोग्रामिंग भाषा]]ओं में इन्हें परमाणु कहा जाता है।<ref name=pickaxe>{{cite book|last=Hunt|first=Dave Thomas ; Chad Fowler ; Andy|title=Programming Ruby the pragmatic programmers' guide ; [includes Ruby 1.8]|year=2001|publisher=The Pragmatic Bookshelf|location=Raleigh, NC|isbn=978-0-9745140-5-5|url=https://archive.org/details/programmingrubyp00thom|edition=2. ed., 10. print.|url-access=registration}}</ref> उन्हें [[प्रतीक तालिका]] में रखकर विशिष्टता लागू की जाती है। प्रोग्रामर द्वारा प्रतीकों का सबसे आम उपयोग भाषा प्रतिबिंब (प्रोग्रामिंग) (विशेष रूप से [[कॉलबैक (कंप्यूटर प्रोग्रामिंग)]]) करने के लिए होता है, और सबसे आम अप्रत्यक्ष रूप से ऑब्जेक्ट लिंकेज (सॉफ़्टवेयर) बनाने के लिए उनका उपयोग होता है।
[[कंप्यूटर प्रोग्रामिंग]] में सिंबल एक [[आदिम डेटा प्रकार|अभाज्य डेटा प्रकार]] है जिसका इंस्टेंस (कंप्यूटर विज्ञान) एक अद्वितीय मानव-पठनीय रूप है। प्रतीकों का उपयोग पहचानकर्ता (कंप्यूटर भाषा) के रूप में किया जा सकता है। कुछ [[प्रोग्रामिंग भाषा]]ओं में इन्हें परमाणु कहा जाता है। <ref name=pickaxe>{{cite book|last=Hunt|first=Dave Thomas ; Chad Fowler ; Andy|title=Programming Ruby the pragmatic programmers' guide ; [includes Ruby 1.8]|year=2001|publisher=The Pragmatic Bookshelf|location=Raleigh, NC|isbn=978-0-9745140-5-5|url=https://archive.org/details/programmingrubyp00thom|edition=2. ed., 10. print.|url-access=registration}}</ref> उन्हें [[प्रतीक तालिका|सिंबल टेबल]] में रखकर विशिष्टता लागू की जाती है। प्रोग्रामर द्वारा प्रतीकों का सबसे सामान्य उपयोग भाषा प्रतिबिंब (प्रोग्रामिंग) (विशेष रूप से [[कॉलबैक (कंप्यूटर प्रोग्रामिंग)]]) करने के लिए होता है, और सबसे सामान्य अप्रत्यक्ष रूप से ऑब्जेक्ट संयोजन (सॉफ़्टवेयर) बनाने के लिए उनका उपयोग होता है।


सबसे तुच्छ [[कार्यान्वयन]] में, उन्हें अनिवार्य रूप से [[पूर्णांक]] नाम दिया गया है (उदाहरण के लिए सी में [[प्रगणित प्रकार]])।
सबसे तुच्छ [[कार्यान्वयन]] में, उन्हें अनिवार्य रूप से [[पूर्णांक]] नाम दिया गया है (उदाहरण के लिए सी में [[प्रगणित प्रकार]])।
Line 9: Line 9:
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! language || type name(s) || example literal(s)
! भाषा || नाम प्रकार || उदाहरण शाब्दिक
|-
|-
| [[ANSI]] [[Common Lisp]] || symbol, keyword || <code>symbol</code>, <code>:keyword</code>
| एएनएसआई सामान्य लिस्प || सिंबल, कीवर्ड || <code>symbol</code>, <code>:KEYWORD</code>
|-
|-
| [[Clojure]] || symbol,<ref>[http://clojure.org/data_structures#Data%20Structures-Symbols Symbols] on the page on Data Structures</ref> keyword<ref>[http://clojure.org/data_structures#Data%20Structures-Keywords Keywords] on the page on Data Structures</ref> || <code>'symbol</code>, <code>:keyword</code>
| [[Clojure|क्लोजर]] || सिंबल,<ref>[http://clojure.org/data_structures#Data%20Structures-Symbols Symbols] on the page on Data Structures</ref> कीवर्ड<ref>[http://clojure.org/data_structures#Data%20Structures-Keywords Keywords] on the page on Data Structures</ref> || <code>'symbol</code>, <code>:KEYWORD</code>
|-
|-
| [[Dart (programming language)|Dart]] || Symbol<ref>{{cite web |title=A tour of the Dart language {{pipe}} Symbols |url=https://dart.dev/guides/language/language-tour#symbols |website=Dart programming language |access-date=17 January 2021}}</ref> || <code>#sym</code>
| [[Dart (programming language)|डार्ट]] || सिंबल<ref>{{cite web |title=A tour of the Dart language {{pipe}} Symbols |url=https://dart.dev/guides/language/language-tour#symbols |website=Dart programming language |access-date=17 January 2021}}</ref> || <code>#sym</code>
|-
|-
| [[Elixir (programming language)|Elixir]] || atom, symbol || <code>:sym</code>
| [[Elixir (programming language)|एलिक्सिर]] || एटम, सिंबल || <code>:sym</code>
|-
|-
| [[Erlang (programming language)|Erlang]] || atom || <code>sym</code> or <code>'sym'</code>
| [[Erlang (programming language)|एरलंग]] || एटम || <code>sym</code> or <code>'sym'</code>
|-
|-
| [[JavaScript]] (ES6 and later) || Symbol || <code>Symbol("sym");</code>
| [[JavaScript|जावास्क्रिप्ट]] (ES6 और बाद में) || सिंबल || <code>symbol("sym");</code>
|-
|-
| [[Julia (programming language)|Julia]] || Symbol || <code>:sym</code>
| [[Julia (programming language)|जूलिया]] || सिंबल || <code>:sym</code>
|-
|-
| [[K (programming language)]] || symbol || `sym
| [[K (programming language)|के (प्रोग्रामिंग लैंग्वेज)]] || सिंबल || `sym
|-
|-
| [[Objective-C]] || SEL || <code>@selector(sym)</code>
| [[Objective-C|उद्देश्य-सी]] || एसईएल || <code>@selector(sym)</code>
|-
|-
| [[PICAXE]] [[BASIC]] || symbol || <code> symbol let name = variable </code>
| पिकैक्स बेसिक || सिंबल || <code> symbol let name = variable </code>
|-
|-
| [[PostScript]] || name || <code>/sym</code> or <code>sym</code>
| [[PostScript|पश्चलेख]] || नाम || <code>/sym</code> or <code>sym</code>
|-
|-
| [[Prolog (programming language)|Prolog]] || atom, symbol || <code>sym</code> or <code>'sym'</code>
| [[Prolog (programming language)|प्रोलोग]] || एटम, सिंबल || <code>sym</code> or <code>'sym'</code>
|-
|-
| [[Ruby (programming language)|Ruby]] || Symbol || <code>:sym</code> or <code>:'sym'</code>
| [[Ruby (programming language)|रूबी]] || सिंबल || <code>:sym</code> or <code>:'sym'</code>
|-
|-
| [[Scala (programming language)|Scala]] || scala.Symbol || <code>'symbol</code>
| [[Scala (programming language)|स्काला]] || निःश्रेणी.प्रतीक || <code>'symbol</code>
|-
|-
| [[Scheme (programming language)|Scheme]] || symbol || <code>sym</code>
| [[Scheme (programming language)|स्कीम]] || सिंबल || <code>sym</code>
|-
|-
| [[Smalltalk]] || Symbol || <code>#sym</code> or <code>#'sym'</code>
| [[Smalltalk|स्मालटॉक]] || सिंबल || <code>#sym</code> or <code>#'sym'</code>
|-
|-
| [[SML/NJ]] || Atom.atom ||
| [[SML/NJ|एसएमएल/एनजे]] || एटम.एटम ||
|-
|-
| [[Wolfram Language]] || Symbol || <code>Symbol["sym"]</code> or <code>sym</code>
| [[Wolfram Language|वोल्फ्राम]] [[K (programming language)|लैंग्वेज]] || सिंबल || <code>symbol["sym"]</code> or <code>sym</code>
|}
|}




===जूलिया===
===जूलिया===
[[जूलिया (प्रोग्रामिंग भाषा)]] में प्रतीक [[स्ट्रिंग इंटर्निंग]] हैं जिनका उपयोग पार्स किए गए जूलिया कोड ([[सार वाक्यविन्यास वृक्ष]]) में पहचानकर्ताओं को दर्शाने के लिए और संस्थाओं की पहचान करने के लिए नाम या लेबल के रूप में किया जाता है (उदाहरण के लिए एक शब्दकोश में कुंजी के रूप में)।<ref>{{cite web |title=जूलिया कोर.प्रतीक|url=https://docs.julialang.org/en/v1/base/base/#Core.Symbol |website=Julia Documentation |access-date=31 May 2022}}</ref>
[[जूलिया (प्रोग्रामिंग भाषा)]] में सिंबल [[स्ट्रिंग इंटर्निंग|श्रृंखला प्रशिक्षु]] हैं जिनका उपयोग पदव्याख्या किए गए जूलिया कूट ([[सार वाक्यविन्यास वृक्ष]]) में पहचानकर्ताओं को दर्शाने के लिए और संस्थाओं की पहचान करने के लिए नाम या वर्गीकरण के रूप में किया जाता है (उदाहरण के लिए एक शब्दकोश में कुंजी के रूप में)। <ref>{{cite web |title=जूलिया कोर.प्रतीक|url=https://docs.julialang.org/en/v1/base/base/#Core.Symbol |website=Julia Documentation |access-date=31 May 2022}}</ref>




===लिस्प===
===लिस्प===
[[लिस्प (प्रोग्रामिंग भाषा)]] में एक प्रतीक [[ नाम स्थान ]] (या कॉमन लिस्प में पैकेज) में अद्वितीय है। फ़ंक्शन EQ के साथ समानता के लिए प्रतीकों का परीक्षण किया जा सकता है। लिस्प प्रोग्राम रनटाइम पर नए प्रतीक उत्पन्न कर सकते हैं। जब लिस्प उस डेटा को पढ़ता है जिसमें पाठ्य प्रतिनिधित्व वाले प्रतीक शामिल होते हैं, तो मौजूदा प्रतीकों को संदर्भित किया जाता है। यदि कोई प्रतीक अज्ञात है, तो लिस्प रीडर एक नया प्रतीक बनाता है।
[[लिस्प (प्रोग्रामिंग भाषा)]] में एक सिंबल [[ नाम स्थान |नाम स्थान]] (या कॉमन लिस्प में पैकेज) में अद्वितीय है। फलन EQ के साथ समानता के लिए प्रतीकों का परीक्षण किया जा सकता है। लिस्प प्रोग्राम रनटाइम पर नए सिंबल उत्पन्न कर सकते हैं। जब लिस्प उस डेटा को पढ़ता है जिसमें पाठ्य प्रतिनिधित्व वाले सिंबल सम्मिलित होते हैं, तो उपस्थित प्रतीकों को संदर्भित किया जाता है। यदि कोई सिंबल अज्ञात है, तो लिस्प रीडर एक नया सिंबल बनाता है।


[[सामान्य लिस्प]] प्रतीकों में निम्नलिखित विशेषताएँ होती हैं: एक नाम, एक मान, एक फ़ंक्शन, गुणों की एक सूची और एक पैकेज।<ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_symbol.htm Common Lisp HyperSpec, system class Symbol]</ref>
[[सामान्य लिस्प]] प्रतीकों में निम्नलिखित विशेषताएँ होती हैं: एक नाम, एक मान, एक फलन, गुणों की एक सूची और एक संकुल है। <ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_symbol.htm Common Lisp HyperSpec, system class Symbol]</ref>
कॉमन लिस्प में यह भी संभव है कि किसी पैकेज में कोई प्रतीक अंकित न हो। ऐसे प्रतीकों को मुद्रित किया जा सकता है, लेकिन जब वापस पढ़ा जाता है, तो एक नया प्रतीक बनाना पड़ता है। चूंकि इसे इंटर्न नहीं किया गया है, इसलिए मूल प्रतीक को किसी पैकेज से पुनर्प्राप्त नहीं किया जा सकता है।


कॉमन लिस्प प्रतीकों में व्हाइटस्पेस सहित किसी भी वर्ण का उपयोग किया जा सकता है, जैसे रिक्त स्थान और न्यूलाइन। यदि किसी प्रतीक में एक रिक्त स्थान वर्ण है तो उसे इस प्रकार लिखा जाना चाहिए |यह एक प्रतीक है|। प्रतीकों का उपयोग किसी भी प्रकार की नामित प्रोग्रामिंग संरचनाओं के लिए पहचानकर्ता के रूप में किया जा सकता है: चर, फ़ंक्शन, मैक्रोज़, कक्षाएं, प्रकार, गोटो टैग और बहुत कुछ।
कॉमन लिस्प में यह भी संभव है कि किसी पैकेज में कोई सिंबल अंकित न हो। ऐसे प्रतीकों को मुद्रित किया जा सकता है, लेकिन जब वापस पढ़ा जाता है, तो एक नया सिंबल बनाना पड़ता है। चूंकि इसे प्रशिक्षु नहीं किया गया है, इसलिए मूल सिंबल को किसी पैकेज से पुनर्प्राप्त नहीं किया जा सकता है।
प्रतीकों को एक पैकेज में रखा जा सकता है।<ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_pkg.htm#package Common Lisp HyperSpec, system class Package]</ref> कीवर्ड प्रतीक स्व-मूल्यांकन कर रहे हैं<ref>[[Peter Norvig]]: ''Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp'', Morgan Kaufmann, 1991, {{ISBN|1-55860-191-0}}, [http://norvig.com/paip.html Web]</ref> और KEYWORD नाम के पैकेज में इंटर्न किया गया।
 
कॉमन लिस्प प्रतीकों में व्हाइटस्पेस सहित किसी भी वर्ण का उपयोग किया जा सकता है, जैसे रिक्त स्थान और न्यूलाइन है। यदि किसी सिंबल में एक रिक्त स्थान वर्ण है तो उसे इस प्रकार लिखा जाना चाहिए यह एक सिंबल है। प्रतीकों का उपयोग किसी भी प्रकार की नामित प्रोग्रामिंग संरचनाओं के लिए पहचानकर्ता के रूप में किया जा सकता है: चर, फलन, मैक्रोज़, कक्षाएं, प्रकार, गोटो टैग और बहुत कुछ है।
 
प्रतीकों को एक संकुल में रखा जा सकता है। <ref>[http://www.lispworks.com/documentation/HyperSpec/Body/t_pkg.htm#package Common Lisp HyperSpec, system class Package]</ref> कीवर्ड सिंबल स्व-मूल्यांकन कर रहे हैं <ref>[[Peter Norvig]]: ''Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp'', Morgan Kaufmann, 1991, {{ISBN|1-55860-191-0}}, [http://norvig.com/paip.html Web]</ref> और कीवर्ड नाम के संकुल में इंटर्न किया गया।


====उदाहरण====
====उदाहरण====
निम्नलिखित सामान्य लिस्प प्रतीक का एक सरल बाहरी प्रतिनिधित्व है:
निम्नलिखित सामान्य लिस्प सिंबल का एक सरल बाहरी प्रतिनिधित्व है:
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
this-is-a-symbol
this-is-a-symbol
</syntaxhighlight>
</syntaxhighlight>
Line 75: Line 77:
:keyword-symbol
:keyword-symbol
</syntaxhighlight>
</syntaxhighlight>
किसी प्रतीक के मुद्रित प्रतिनिधित्व में पैकेज का नाम शामिल हो सकता है। पैकेज के नाम और प्रतीक के नाम के बीच दो कोलन लिखे होते हैं।
किसी सिंबल के मुद्रित प्रतिनिधित्व में पैकेज का नाम सम्मिलित हो सकता है। पैकेज के नाम और सिंबल के नाम के बीच दो कोलन लिखे होते हैं।
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
package-name::symbol-name
package-name::symbol-name
</syntaxhighlight>
</syntaxhighlight>
पैकेज प्रतीकों को निर्यात कर सकते हैं। फिर पैकेज के नाम और प्रतीक के नाम के बीच केवल एक कोलन लिखा जाता है।
पैकेज प्रतीकों को निर्यात कर सकते हैं। फिर पैकेज के नाम और सिंबल के नाम के बीच केवल एक कोलन लिखा जाता है।
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
package:exported-symbol
package:exported-symbol
</syntaxhighlight>
</syntaxhighlight>
प्रतीक, जो किसी पैकेज में शामिल नहीं हैं, उन्हें भी बनाया जा सकता है और उनका एक अंकन हो सकता है:
सिंबल, जो किसी पैकेज में सम्मिलित नहीं हैं, उन्हें भी बनाया जा सकता है और उनका एक अंकन हो सकता है:
<syntaxhighlight lang="lisp">
<syntaxhighlight lang="lisp">
#:uninterned-symbol
#:uninterned-symbol
Line 90: Line 92:


===[[ परिशिष्ट भाग ]]===
===[[ परिशिष्ट भाग ]]===
पोस्टस्क्रिप्ट में, नाम वस्तुओं के संदर्भ या तो शाब्दिक या निष्पादन योग्य हो सकते हैं, जो उनका सामना करते समय दुभाषिया के व्यवहार को प्रभावित करते हैं। <code>cvx</code> ई> और <code>cvl</code> ऑपरेटरों का उपयोग दो रूपों के बीच कनवर्ट करने के लिए किया जा सकता है। जब नामों का निर्माण स्ट्रिंग्स के माध्यम से किया जाता है <code>cvn</code> ऑपरेटर, अनुमत वर्णों का सेट अप्रतिबंधित है।
पश्चलेख में, नाम वस्तुओं के संदर्भ या तो शाब्दिक या निष्पादन योग्य हो सकते हैं, जो उनका सामना करते समय दुभाषिया के व्यवहार को प्रभावित करते हैं। <code>cvx</code> ई> और <code>cvl</code> संचालक का उपयोग दो रूपों के बीच रूपांतरण करने के लिए किया जा सकता है। जब नामों का निर्माण स्ट्रिंग्स <code>cvn</code> संचालक के माध्यम से किया जाता है, अनुमत वर्णों का सम्मुच्चय अप्रतिबंधित है।


===प्रस्तावना===
===प्रस्तावना===
[[प्रोलॉग (प्रोग्रामिंग भाषा)]] में, प्रतीक (या परमाणु) संख्याओं के समान प्राथमिक आदिम डेटा प्रकार होते हैं।<ref name=Bratko2001>{{Cite book  | last1 = Bratko | first1 = Ivan | title = कृत्रिम बुद्धिमत्ता के लिए प्रोलॉग प्रोग्रामिंग| year = 2001 | publisher = Addison Wesley | location = Harlow, England ; New York | isbn = 978-0-201-40375-6 }}</ref> विभिन्न प्रोलॉग की बोलियों में सटीक संकेतन भिन्न हो सकते हैं। हालाँकि, यह हमेशा काफी सरल होता है (कोई उद्धरण या विशेष आरंभिक वर्ण आवश्यक नहीं हैं)।
[[प्रोलॉग (प्रोग्रामिंग भाषा)]] में, सिंबल (या परमाणु) संख्याओं के समान प्राथमिक आदिम डेटा प्रकार होते हैं। <ref name=Bratko2001>{{Cite book  | last1 = Bratko | first1 = Ivan | title = कृत्रिम बुद्धिमत्ता के लिए प्रोलॉग प्रोग्रामिंग| year = 2001 | publisher = Addison Wesley | location = Harlow, England ; New York | isbn = 978-0-201-40375-6 }}</ref> विभिन्न प्रोलॉग की बोलियों में सटीक संकेतन भिन्न हो सकते हैं। हालाँकि, यह हमेशा काफी सरल होता है (कोई उद्धरण या विशेष आरंभिक वर्ण आवश्यक नहीं हैं)।


अन्य भाषाओं के विपरीत, कुछ प्रोलॉग के तथ्य और/या नियम बनाकर प्रतीकों को कुछ अर्थ देना संभव है।
अन्य भाषाओं के विपरीत, कुछ प्रोलॉग के तथ्य और/या नियम बनाकर प्रतीकों को कुछ अर्थ देना संभव है।


====उदाहरण====
====उदाहरण====
निम्नलिखित उदाहरण दो तथ्यों को प्रदर्शित करता है (यह वर्णन करता है कि पिता क्या है) और एक नियम (भाई-बहन के अर्थ का वर्णन करता है)। ये तीन वाक्य प्रतीकों (पिता, ज़ीउस, हर्मीस, पर्सियस और भाई-बहन) और कुछ अमूर्त चर (एक्स, वाई और जेड) का उपयोग करते हैं। स्पष्टता के लिए माँ के रिश्ते को छोड़ दिया गया है।
निम्नलिखित उदाहरण दो तथ्यों को प्रदर्शित करता है (यह वर्णन करता है कि फादर क्या है) और एक नियम (''सिबलिंग'' के अर्थ का वर्णन करता है)। ये तीन वाक्य प्रतीकों (फादर, ज़ीउस, हर्मीस, पर्सियस और ''सिबलिंग'') और कुछ अमूर्त चर (एक्स, वाई और जेड) का उपयोग करते हैं। स्पष्टता के लिए मदर रिलेशनशिप को छोड़ दिया गया है।
<syntaxhighlight lang="prolog">
<syntaxhighlight lang="prolog">
father(zeus, hermes).
father(zeus, hermes).
Line 108: Line 110:


===रूबी===
===रूबी===
[[रूबी (प्रोग्रामिंग भाषा)]] में, प्रतीकों को शाब्दिक रूप से या एक स्ट्रिंग को परिवर्तित करके बनाया जा सकता है।<ref name=pickaxe />उनका उपयोग एक पहचानकर्ता या एक आंतरिक स्ट्रिंग के रूप में किया जा सकता है।<ref name="rubysymbol">{{cite web|last=Kidd|first=Eric|title=13 Ways of Looking at a Ruby Symbol|url=http://www.randomhacks.net/articles/2007/01/20/13-ways-of-looking-at-a-ruby-symbol#9|work=Random Hacks|access-date=10 July 2011}}</ref> समान सामग्री वाले दो प्रतीक हमेशा एक ही वस्तु को संदर्भित करेंगे।<ref>{{Cite web | url=http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UI | title=Programming Ruby: The Pragmatic Programmer's Guide}}</ref>
[[रूबी (प्रोग्रामिंग भाषा)]] में, प्रतीकों को शाब्दिक रूप से या एक श्रृंखला को परिवर्तित करके बनाया जा सकता है। <ref name=pickaxe /> उनका उपयोग एक पहचानकर्ता या एक आंतरिक श्रृंखला के रूप में किया जा सकता है। <ref name="rubysymbol">{{cite web|last=Kidd|first=Eric|title=13 Ways of Looking at a Ruby Symbol|url=http://www.randomhacks.net/articles/2007/01/20/13-ways-of-looking-at-a-ruby-symbol#9|work=Random Hacks|access-date=10 July 2011}}</ref> समान सामग्री वाले दो सिंबल हमेशा एक ही वस्तु को संदर्भित करेंगे। <ref>{{Cite web | url=http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UI | title=Programming Ruby: The Pragmatic Programmer's Guide}}</ref>
रूबी में [[साहचर्य सरणी]] की कुंजी के रूप में प्रतीकों का उपयोग करना सबसे अच्छा अभ्यास माना जाता है।<ref name=rubysymbol /><ref name="wrongreason">{{cite web|title=गलत कारण के लिए प्रतीकों का उपयोग करना|url=http://microjet.ath.cx/WebWiki/2005.12.27_UsingSymbolsForTheWrongReason.html|work=Gnomic Notes}}</ref>
 
रूबी में [[साहचर्य सरणी]] की कुंजी के रूप में प्रतीकों का उपयोग करना सबसे अच्छा अभ्यास माना जाता है। <ref name="rubysymbol" /><ref name="wrongreason">{{cite web|title=गलत कारण के लिए प्रतीकों का उपयोग करना|url=http://microjet.ath.cx/WebWiki/2005.12.27_UsingSymbolsForTheWrongReason.html|work=Gnomic Notes}}</ref>
 




====उदाहरण====
====उदाहरण====
रूबी में शाब्दिक प्रतीक का एक सरल उदाहरण निम्नलिखित है:<ref name=pickaxe />
रूबी में शाब्दिक सिंबल का एक सरल उदाहरण निम्नलिखित है: <ref name=pickaxe />
<syntaxhighlight lang=ruby>
<syntaxhighlight lang=ruby>
my_symbol = :a
my_symbol = :a
my_symbol = :"an identifier"
my_symbol = :"an identifier"
</syntaxhighlight>
</syntaxhighlight>
स्ट्रिंग्स को प्रतीकों में ज़बरदस्ती बनाया जा सकता है, इसके विपरीत:
स्ट्रिंग्स को प्रतीकों में बलात् बनाया जा सकता है, इसके विपरीत:
<syntaxhighlight lang=irb>
<syntaxhighlight lang=irb>
irb(main):001:0> my_symbol = "Hello, world!".intern  
irb(main):001:0> my_symbol = "Hello, world!".intern  
Line 127: Line 131:
=> "hello"
=> "hello"
</syntaxhighlight>
</syntaxhighlight>
प्रतीक वस्तुएँ हैं <code>Symbol</code> रूबी में कक्षा:<ref name="rdocsymbol">{{cite web|title=प्रतीक|url=http://www.ruby-doc.org/core/classes/प्रतीक.html|work=Ruby Documentation|access-date=10 July 2011}}</ref>
सिंबल रूबी में <code>प्रतीक</code>वर्ग की वस्तुएं हैं: <ref name="rdocsymbol">{{cite web|title=प्रतीक|url=http://www.ruby-doc.org/core/classes/प्रतीक.html|work=Ruby Documentation|access-date=10 July 2011}}</ref>
<syntaxhighlight lang=irb>
<syntaxhighlight lang=irb>
irb(main):004:0> my_symbol = :hello_world
irb(main):004:0> my_symbol = :hello_world
Line 136: Line 140:
=> Symbol
=> Symbol
</syntaxhighlight>
</syntaxhighlight>
प्रतीकों का उपयोग आमतौर पर वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:
प्रतीकों का उपयोग सामान्यतः वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:
<syntaxhighlight lang=irb>
<syntaxhighlight lang=irb>
irb(main):007:0> "aoboc".split("o")
irb(main):007:0> "aoboc".split("o")
Line 143: Line 147:
=> ["a", "b", "c"]
=> ["a", "b", "c"]
</syntaxhighlight>
</syntaxhighlight>
सहयोगी सरणी की कुंजी के रूप में प्रतीक:
सहयोगी सरणी की कुंजी के रूप में सिंबल:
<syntaxhighlight lang=irb>
<syntaxhighlight lang=irb>
irb(main):009:0> my_hash = { a: "apple", b: "banana" }
irb(main):009:0> my_hash = { a: "apple", b: "banana" }
Line 154: Line 158:




===छोटी सी बात===
===स्मालटॉक===
स्मॉलटॉक में, प्रतीकों को शाब्दिक रूप से या एक स्ट्रिंग को परिवर्तित करके बनाया जा सकता है।
स्मॉलटॉक में, प्रतीकों को शाब्दिक रूप से या एक श्रृंखला को परिवर्तित करके बनाया जा सकता है।
उनका उपयोग एक पहचानकर्ता या एक आंतरिक स्ट्रिंग के रूप में किया जा सकता है। समान सामग्री वाले दो प्रतीक हमेशा एक ही वस्तु को संदर्भित करेंगे।<ref>http://wiki.squeak.org/squeak/uploads/172/standard_v1_9-indexed.pdf ANSI Smalltalk standard.</ref> अधिकांश स्मॉलटॉक कार्यान्वयन में, चयनकर्ताओं (विधि नाम) को प्रतीकों के रूप में लागू किया जाता है।
 
उनका उपयोग एक पहचानकर्ता या एक आंतरिक श्रृंखला के रूप में किया जा सकता है। समान सामग्री वाले दो सिंबल हमेशा एक ही वस्तु को संदर्भित करेंगे। <ref>http://wiki.squeak.org/squeak/uploads/172/standard_v1_9-indexed.pdf ANSI Smalltalk standard.</ref> अधिकांश स्मॉलटॉक कार्यान्वयन में, चयनकर्ताओं (विधि नाम) को प्रतीकों के रूप में लागू किया जाता है।


====उदाहरण====
====उदाहरण====
स्मॉलटॉक में शाब्दिक प्रतीक का एक सरल उदाहरण निम्नलिखित है:
स्मॉलटॉक में शाब्दिक सिंबल का एक सरल उदाहरण निम्नलिखित है:
<syntaxhighlight lang=smalltalk>
<syntaxhighlight lang=smalltalk>
my_symbol := #'an identifier' " Symbol literal "
my_symbol := #'an identifier' " Symbol literal "
Line 170: Line 175:
my_string := #hello: asString        " => 'hello:' "
my_string := #hello: asString        " => 'hello:' "
</syntaxhighlight>
</syntaxhighlight>
प्रतीक इसके अनुरूप हैं <code>symbol</code> प्रोटोकॉल, और उनके वर्ग को कहा जाता है <code>Symbol</code> अधिकांश कार्यान्वयन में:
प्रतीक<code>प्रतीक</code> विज्ञप्ति के अनुरूप होते हैं, और उनके वर्ग को अधिकांश कार्यान्वयन में <code>प्रतीक</code>कहा जाता है:  
<syntaxhighlight lang=smalltalk>
<syntaxhighlight lang=smalltalk>
my_symbol := #hello_world
my_symbol := #hello_world
my_symbol class            " => Symbol "
my_symbol class            " => Symbol "
</syntaxhighlight>
</syntaxhighlight>
प्रतीकों का उपयोग आमतौर पर वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:
प्रतीकों का उपयोग सामान्यतः वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:
<syntaxhighlight lang=smalltalk>
<syntaxhighlight lang=smalltalk>
" same as 'foo' at: 2 "
" same as 'foo' at: 2 "
Line 184: Line 189:
==संदर्भ==
==संदर्भ==
<references/>
<references/>
[[Category: रूबी कोड उदाहरण सहित लेख]] [[Category: प्रोग्रामिंग निर्माण]]


[[Category: Machine Translated Page]]
[[Category:Created On 23/06/2023]]
[[Category:Created On 23/06/2023]]
[[Category:Dynamic lists]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:प्रोग्रामिंग निर्माण]]
[[Category:रूबी कोड उदाहरण सहित लेख]]

Latest revision as of 09:15, 16 July 2023

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

सबसे तुच्छ कार्यान्वयन में, उन्हें अनिवार्य रूप से पूर्णांक नाम दिया गया है (उदाहरण के लिए सी में प्रगणित प्रकार)।

समर्थन

निम्नलिखित प्रोग्रामिंग भाषाएँ प्रतीकों के लिए रनटाइम सिस्टम समर्थन प्रदान करती हैं:

भाषा नाम प्रकार उदाहरण शाब्दिक
एएनएसआई सामान्य लिस्प सिंबल, कीवर्ड symbol, :KEYWORD
क्लोजर सिंबल,[2] कीवर्ड[3] 'symbol, :KEYWORD
डार्ट सिंबल[4] #sym
एलिक्सिर एटम, सिंबल :sym
एरलंग एटम sym or 'sym'
जावास्क्रिप्ट (ES6 और बाद में) सिंबल symbol("sym");
जूलिया सिंबल :sym
के (प्रोग्रामिंग लैंग्वेज) सिंबल `sym
उद्देश्य-सी एसईएल @selector(sym)
पिकैक्स बेसिक सिंबल symbol let name = variable
पश्चलेख नाम /sym or sym
प्रोलोग एटम, सिंबल sym or 'sym'
रूबी सिंबल :sym or :'sym'
स्काला निःश्रेणी.प्रतीक 'symbol
स्कीम सिंबल sym
स्मालटॉक सिंबल #sym or #'sym'
एसएमएल/एनजे एटम.एटम
वोल्फ्राम लैंग्वेज सिंबल symbol["sym"] or sym


जूलिया

जूलिया (प्रोग्रामिंग भाषा) में सिंबल श्रृंखला प्रशिक्षु हैं जिनका उपयोग पदव्याख्या किए गए जूलिया कूट (सार वाक्यविन्यास वृक्ष) में पहचानकर्ताओं को दर्शाने के लिए और संस्थाओं की पहचान करने के लिए नाम या वर्गीकरण के रूप में किया जाता है (उदाहरण के लिए एक शब्दकोश में कुंजी के रूप में)। [5]


लिस्प

लिस्प (प्रोग्रामिंग भाषा) में एक सिंबल नाम स्थान (या कॉमन लिस्प में पैकेज) में अद्वितीय है। फलन EQ के साथ समानता के लिए प्रतीकों का परीक्षण किया जा सकता है। लिस्प प्रोग्राम रनटाइम पर नए सिंबल उत्पन्न कर सकते हैं। जब लिस्प उस डेटा को पढ़ता है जिसमें पाठ्य प्रतिनिधित्व वाले सिंबल सम्मिलित होते हैं, तो उपस्थित प्रतीकों को संदर्भित किया जाता है। यदि कोई सिंबल अज्ञात है, तो लिस्प रीडर एक नया सिंबल बनाता है।

सामान्य लिस्प प्रतीकों में निम्नलिखित विशेषताएँ होती हैं: एक नाम, एक मान, एक फलन, गुणों की एक सूची और एक संकुल है। [6]

कॉमन लिस्प में यह भी संभव है कि किसी पैकेज में कोई सिंबल अंकित न हो। ऐसे प्रतीकों को मुद्रित किया जा सकता है, लेकिन जब वापस पढ़ा जाता है, तो एक नया सिंबल बनाना पड़ता है। चूंकि इसे प्रशिक्षु नहीं किया गया है, इसलिए मूल सिंबल को किसी पैकेज से पुनर्प्राप्त नहीं किया जा सकता है।

कॉमन लिस्प प्रतीकों में व्हाइटस्पेस सहित किसी भी वर्ण का उपयोग किया जा सकता है, जैसे रिक्त स्थान और न्यूलाइन है। यदि किसी सिंबल में एक रिक्त स्थान वर्ण है तो उसे इस प्रकार लिखा जाना चाहिए यह एक सिंबल है। प्रतीकों का उपयोग किसी भी प्रकार की नामित प्रोग्रामिंग संरचनाओं के लिए पहचानकर्ता के रूप में किया जा सकता है: चर, फलन, मैक्रोज़, कक्षाएं, प्रकार, गोटो टैग और बहुत कुछ है।

प्रतीकों को एक संकुल में रखा जा सकता है। [7] कीवर्ड सिंबल स्व-मूल्यांकन कर रहे हैं [8] और कीवर्ड नाम के संकुल में इंटर्न किया गया।

उदाहरण

निम्नलिखित सामान्य लिस्प सिंबल का एक सरल बाहरी प्रतिनिधित्व है:

this-is-a-symbol

प्रतीकों में रिक्त स्थान (और अन्य सभी वर्ण) हो सकते हैं:

|This is a symbol with whitespace|

सामान्य लिस्प प्रतीकों में उनके मुद्रित अभ्यावेदन में एक प्रमुख कोलन के साथ कीवर्ड (कंप्यूटर प्रोग्रामिंग) होते हैं। इन्हें कीवर्ड पैकेज में इंटर्न किया गया है।

:keyword-symbol

किसी सिंबल के मुद्रित प्रतिनिधित्व में पैकेज का नाम सम्मिलित हो सकता है। पैकेज के नाम और सिंबल के नाम के बीच दो कोलन लिखे होते हैं।

package-name::symbol-name

पैकेज प्रतीकों को निर्यात कर सकते हैं। फिर पैकेज के नाम और सिंबल के नाम के बीच केवल एक कोलन लिखा जाता है।

package:exported-symbol

सिंबल, जो किसी पैकेज में सम्मिलित नहीं हैं, उन्हें भी बनाया जा सकता है और उनका एक अंकन हो सकता है:

#:uninterned-symbol


परिशिष्ट भाग

पश्चलेख में, नाम वस्तुओं के संदर्भ या तो शाब्दिक या निष्पादन योग्य हो सकते हैं, जो उनका सामना करते समय दुभाषिया के व्यवहार को प्रभावित करते हैं। cvx ई> और cvl संचालक का उपयोग दो रूपों के बीच रूपांतरण करने के लिए किया जा सकता है। जब नामों का निर्माण स्ट्रिंग्स cvn संचालक के माध्यम से किया जाता है, अनुमत वर्णों का सम्मुच्चय अप्रतिबंधित है।

प्रस्तावना

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

अन्य भाषाओं के विपरीत, कुछ प्रोलॉग के तथ्य और/या नियम बनाकर प्रतीकों को कुछ अर्थ देना संभव है।

उदाहरण

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

father(zeus, hermes).
father(zeus, perseus).

sibling(X, Y) :- father(Z, X), father(Z, Y).


रूबी

रूबी (प्रोग्रामिंग भाषा) में, प्रतीकों को शाब्दिक रूप से या एक श्रृंखला को परिवर्तित करके बनाया जा सकता है। [1] उनका उपयोग एक पहचानकर्ता या एक आंतरिक श्रृंखला के रूप में किया जा सकता है। [10] समान सामग्री वाले दो सिंबल हमेशा एक ही वस्तु को संदर्भित करेंगे। [11]

रूबी में साहचर्य सरणी की कुंजी के रूप में प्रतीकों का उपयोग करना सबसे अच्छा अभ्यास माना जाता है। [10][12]


उदाहरण

रूबी में शाब्दिक सिंबल का एक सरल उदाहरण निम्नलिखित है: [1]

my_symbol = :a
my_symbol = :"an identifier"

स्ट्रिंग्स को प्रतीकों में बलात् बनाया जा सकता है, इसके विपरीत:

irb(main):001:0> my_symbol = "Hello, world!".intern 
=> :"Hello, world!"
irb(main):002:0> my_symbol = "Hello, world!".to_sym 
=> :"Hello, world!"
irb(main):003:0> my_string = :hello.to_s
=> "hello"

सिंबल रूबी में प्रतीकवर्ग की वस्तुएं हैं: [13]

irb(main):004:0> my_symbol = :hello_world
=> :hello_world
irb(main):005:0> my_symbol.length 
=> 11
irb(main):006:0> my_symbol.class 
=> Symbol

प्रतीकों का उपयोग सामान्यतः वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:

irb(main):007:0> "aoboc".split("o")
=> ["a", "b", "c"]
irb(main):008:0> "aoboc".send(:split, "o") # same result
=> ["a", "b", "c"]

सहयोगी सरणी की कुंजी के रूप में सिंबल:

irb(main):009:0> my_hash = { a: "apple", b: "banana" }
=> {:a=>"apple", :b=>"banana"}
irb(main):010:0> my_hash[:a] 
=> "apple"
irb(main):011:0> my_hash[:b] 
=> "banana"


स्मालटॉक

स्मॉलटॉक में, प्रतीकों को शाब्दिक रूप से या एक श्रृंखला को परिवर्तित करके बनाया जा सकता है।

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

उदाहरण

स्मॉलटॉक में शाब्दिक सिंबल का एक सरल उदाहरण निम्नलिखित है:

my_symbol := #'an identifier' " Symbol literal "
my_symbol := #a               " Technically, this is a selector literal. In most implementations, "
                              " selectors are symbols, so this is also a symbol literal "

स्ट्रिंग्स को प्रतीकों में ज़बरदस्ती बनाया जा सकता है, इसके विपरीत:

my_symbol := 'Hello, world!' asSymbol " => #'Hello, world!' "
my_string := #hello: asString         " => 'hello:' "

प्रतीकप्रतीक विज्ञप्ति के अनुरूप होते हैं, और उनके वर्ग को अधिकांश कार्यान्वयन में प्रतीककहा जाता है:

my_symbol := #hello_world
my_symbol class            " => Symbol "

प्रतीकों का उपयोग सामान्यतः वस्तुओं को गतिशील रूप से संदेश भेजने (कॉल विधियों पर) के लिए किया जाता है:

" same as 'foo' at: 2 "
'foo' perform: #at: with: 2 " => $o "


संदर्भ

  1. 1.0 1.1 1.2 Hunt, Dave Thomas ; Chad Fowler ; Andy (2001). Programming Ruby the pragmatic programmers' guide ; [includes Ruby 1.8] (2. ed., 10. print. ed.). Raleigh, NC: The Pragmatic Bookshelf. ISBN 978-0-9745140-5-5.{{cite book}}: CS1 maint: multiple names: authors list (link)
  2. Symbols on the page on Data Structures
  3. Keywords on the page on Data Structures
  4. "A tour of the Dart language | Symbols". Dart programming language. Retrieved 17 January 2021.
  5. "जूलिया कोर.प्रतीक". Julia Documentation. Retrieved 31 May 2022.
  6. Common Lisp HyperSpec, system class Symbol
  7. Common Lisp HyperSpec, system class Package
  8. Peter Norvig: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp, Morgan Kaufmann, 1991, ISBN 1-55860-191-0, Web
  9. Bratko, Ivan (2001). कृत्रिम बुद्धिमत्ता के लिए प्रोलॉग प्रोग्रामिंग. Harlow, England ; New York: Addison Wesley. ISBN 978-0-201-40375-6.
  10. 10.0 10.1 Kidd, Eric. "13 Ways of Looking at a Ruby Symbol". Random Hacks. Retrieved 10 July 2011.
  11. "Programming Ruby: The Pragmatic Programmer's Guide".
  12. "गलत कारण के लिए प्रतीकों का उपयोग करना". Gnomic Notes.
  13. "प्रतीक". Ruby Documentation. Retrieved 10 July 2011.
  14. http://wiki.squeak.org/squeak/uploads/172/standard_v1_9-indexed.pdf ANSI Smalltalk standard.