क्या वर्ग ब्रैकेट और घुंघराले घुंघराले अभी भी एस-एक्सप्रेशन हैं?


12

मैं लिस्प सीखने की कोशिश कर रहा हूं और सभी लिसप्स को वहां और उनके मतभेदों को देख रहा हूं।

मैं देख रहा हूं कि स्कीम के कुछ कार्यान्वयन में, आप पठनीयता के लिए राउंड ब्रैकेट के साथ परस्पर वर्ग स्क्वायर ब्रैकेट का उपयोग कर सकते हैं, इसलिए क्योंकि उनके साथ भी ऐसा ही व्यवहार किया जाता है, मेरा मानना ​​है कि वे अभी भी बाकी सभी की तरह ही एस-एक्सप्रेशन हैं।

हालांकि, क्लॉज्योर में मैं देखता हूं कि चौकोर कोष्ठक और घुंघराले ब्रेसिज़ का उपयोग विभिन्न डेटा प्रकार जैसे वैक्टर और इतने पर प्रतिनिधित्व करने के लिए किया जाता है। क्या ये अभी भी मान्य एस-एक्सप्रेशन हैं, या उन्हें परमाणु माना जाना चाहिए? क्या यह एस-एक्सप्रेशन की पूरी अवधारणा को "तोड़" नहीं देता है, जिससे क्लोजर को "अशुद्ध" लिस्प बना दिया गया है?


तकनीकी रूप से "यदि स्क्वायर ब्रैकेट एस-एक्सप्रेशन हैं, तो आप उन्हें इसके बजाय कोष्ठक के साथ कैसे व्यक्त कर सकते हैं?" सवाल का हिस्सा नहीं था, लेकिन यही मैं जानना चाहता हूं।
क्वर्टी

जवाबों:


10

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

संयोग से, ध्यान दें कि क्लोजर अब कस्टम "टैगेड" शाब्दिक बनाने के लिए एक तंत्र प्रदान करता है, जो अन्य शाब्दिक की तरह, एस-एक्सप्रेशंस में संकलित और व्याख्या करने से पहले बदल जाते हैं।


1
मम्म, आपका जवाब मुझे लगता है कि मैं जितना मैंने सोचा था कि मैंने लिस्प के बारे में जितना सोचा था उससे कम समझती हूं। तो आप जो कह रहे हैं (मुझे लगता है) यह है कि वर्ग और घुंघराले कोष्ठक वास्तव में स्वयं एस-भाव नहीं हैं। मुझे लगा कि लिस्प इनपुट के साथ पूरा विचार यह है कि सब कुछ एक एस-एक्सप्रेशन है। ऐसा लगता है कि मुझे आपके उत्तर को फिर से पढ़ने के लिए वापस आने से पहले कुछ और खुदाई करने की आवश्यकता है। धन्यवाद!
mydoghasworms

यह सही है - वे एस-एक्सप्रेशन नहीं हैं। लिस्प सिंटैक्स एस-एक्सप्रेशन से शुरू होता है , इसमें भाषा में व्यक्त की जाने वाली हर चीज को एस-एक्सप्रेशन के साथ व्यक्त किया जा सकता है। लेकिन लिस्प सिंटैक्स वहाँ समाप्त नहीं होता है: कई लिस्प कंपाइलरों में एक स्पष्ट रीड-मैक्रो चरण होता है, जिसमें स्रोत कोड में विशेष पैटर्न एस-एक्सप्रेशन में बदल जाते हैं। इससे भाषा लेखक प्रोग्रामर को मानव-अनुकूल वाक्य रचना प्रदान करते हैं। ध्यान देने वाली महत्वपूर्ण बात यह है कि क्योंकि इन विशेष शाब्दिकों के साथ प्रतिनिधित्व किया गया कुछ भी एस-अभिव्यक्तियों में दर्शाया जा सकता है, होमोसेक्सुअलिटी का कोई भी लाभ नहीं खोता है।
tvachon

3

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

इस प्रकार, यदि एक लिस्प बोली अतिरिक्त डेटा-प्रकारों के लिए पाठीय अभ्यावेदन प्रस्तुत करती है, तो यह एस-एक्सप्रेशन के विचार के लिए अच्छी तरह से फिट बैठता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.