2012-11-05 12 views
19

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

इसके अतिरिक्त, योजना/सीएल डेवलपर को पाठक परत का पर्दाफाश भी करती है, और इसका उपयोग करके, उन लिस्प्स में पूरी तरह से नई भाषाएं बनाने के लिए संभव नहीं है (न केवल एस-एक्सप्र मैक्रोज़), जैसे कि स्क्रिबल, जिस तरह से आप रैकेट में कर सकते हैं?

दूसरे शब्दों में, रैकेट बस इस भाषा में सुविधाजनक वाक्य रचनात्मक रैपर के साथ "भाषा उन्मुख प्रोग्रामिंग" के आसपास एक दर्शन/सम्मेलन है, या क्या यह मूल रूप से उस भाषा में तकनीकी रूप से असंभव चीजों को करने के लिए योजना का विस्तार करता है?

बहुत बहुत धन्यवाद।

उत्तर

14

दो प्रमुख विशेषताएं है कि "भाषा-ओरिएंटेड प्रोग्रामिंग" रैकेट में काम कर रहे हैं:

  • मॉड्यूल प्रणाली एक आधार भाषा
  • संदर्भ के विनिर्देश की अनुमति देता है संवेदनशील मैक्रोज़

पहली बुलेट मूल रूप से #lang करता है। मॉड्यूल सिस्टम को पाठक को स्थापित करने के प्रभारी होने और किसी दिए गए मॉड्यूल में उपलब्ध बाइंडिंग अलग-अलग भाषाओं के आसान उपयोग की अनुमति देता है। इसके बिना, स्क्रिबल या at-exp जैसी भाषाओं के साथ काम करना अधिक बोझिल होगा।

दूसरा यह है कि इस तरह के रैकेट #%app, #%module-begin के रूप में ओवरराइड संदर्भ के प्रति संवेदनशील मैक्रो प्रदान करता है, और इसलिए उस पर की, कहते हैं अनुकूलन, एक मॉड्यूल के भीतर या पूरे मॉड्यूल के हर समारोह आवेदन अनुमति देते हैं। यह जोड़ने के लिए, उदाहरण के लिए, पूरे मॉड्यूल पर एक प्रकार की जांच पास की अनुमति देता है।

यह रैकेट में भाषाओं का निर्माण करने में मदद करने वाली सुविधाओं की एक विस्तृत सूची नहीं है। यदि आप इसके बारे में अधिक पढ़ने में रुचि रखते हैं, तो "Languages as Libraries" पेपर पढ़ने योग्य है।

13

मैथ्यू फ़्लैट द्वारा पेपर "Composable and Compilable Macros - You Want it When?" को पढ़ने की सलाह दूंगा।

यह बताता है कि कैसे मैक्रोज़ और मॉड्यूल रैकेट में एक साथ काम करते हैं।

फिर रैकेट में एक छोटी भाषा को लागू करें - TinyBasic कहें। फिर अन्य भाषाओं के साथ तुलना करें।

अद्यतन

http://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf

5

@Scott के बाद एक ही प्रश्न के लिए Matthew's reply को एक ही प्रश्न के लिए देखें, इसे हाल ही में ओवरव्यू पेपर के साथ सूची में पोस्ट किया गया है।

संबंधित मुद्दे