कीवर्ड और प्रतीकों के लिए Clojure documentation यहां है।
कीवर्ड प्रतीकात्मक पहचानकर्ता हैं जो स्वयं का मूल्यांकन करते हैं। वे बहुत तेजी से समानता परीक्षण प्रदान करते हैं ...
प्रतीक पहचानकर्ता हैं जिनका उपयोग आमतौर पर किसी और चीज के संदर्भ में किया जाता है। वे कार्यक्रम रूपों में इस्तेमाल किया जा सकता समारोह मापदंडों का उल्लेख करने, बाइंडिंग, वर्ग के नाम और वैश्विक वार्स हैं ...
कीवर्ड आम तौर पर हल्के "निरंतर तार" के रूप में उपयोग किया जाता है, उदाहरण के लिए एक हैश-मैप की कुंजी या बहुमूल्य के प्रेषण मानों के लिए। प्रतीक आमतौर पर परिवर्तनीय और कार्यों के नाम के लिए उपयोग किए जाते हैं और मैक्रोज़ और इस तरह के अलावा उन्हें सीधे ऑब्जेक्ट्स के रूप में उपयोग करने के लिए कम आम है। लेकिन जब भी आप किसी कीवर्ड का उपयोग करते हैं तो आपको प्रतीक का उपयोग करने से रोक नहीं है (यदि आप उन्हें हर समय उद्धृत नहीं करते हैं)।
अंतर देखने का सबसे आसान तरीका क्लोजर स्रोत में Keyword.java
और Symbol.java
पढ़ना है। कुछ स्पष्ट कार्यान्वयन मतभेद हैं। उदाहरण के लिए क्लोजर में एक प्रतीक मेटाडेटा हो सकता है और एक कीवर्ड नहीं कर सकता है।
सिंगल-कोलन सिंटैक्स के अतिरिक्त, आप नामस्थान-योग्य कीवर्ड बनाने के लिए डबल-कोलन का उपयोग कर सकते हैं।
user> :foo
:foo
user> ::foo
:user/foo
आम लिस्प में रूबी और अन्य भाषाओं के रूप में कीवर्ड हैं। वे निश्चित रूप से उन भाषाओं में थोड़ा अलग हैं। सामान्य लिस्प कीवर्ड और क्लोजर कीवर्ड के बीच कुछ अंतर:
क्लोजर में कीवर्ड प्रतीक नहीं हैं।
user> (symbol? :foo)
false
कीवर्ड किसी भी नाम स्थान से संबंधित नहीं है जब तक आप विशेष रूप से उन्हें योग्य: (। मुझे चीजों के विचार देखने के देने के लिए धन्यवाद Rainer Joswig)
user> (namespace :foo)
nil
user> (namespace ::foo)
"user"
स्रोत
2009-10-06 19:52:21
भी देखें: [Clojure में, क्यों है स्ट्रिंग्स, कीवर्ड और प्रतीकों?] (Http://stackoverflow.com/q/11655080/405550) – Zaz