हमें बताएं कि मेरे पास X.clojurescript और X.clojure नामस्थान है। X.clojurescript में सब कुछ क्लोजरस्क्रिप्ट कोड है, X.clojure में सब कुछ क्लोजर कोड है। दुर्भाग्य से, मैं Clojurescript में सीधे मैक्रो भी निर्धारित नहीं कर सकते हैं, मैं उन्हें Clojure में परिभाषित करने और फिर उन्हेंक्लोजरस्क्रिप्ट मैक्रोज़ से आवश्यक क्लोजरस्क्रिप्ट कोड से मैं कैसे निपटूं?
(ns X.clojurescript.abc
(:require-macros [X.clojure.def :as clj]))
यह ठीक है का उपयोग कर एक Clojurescript नाम स्थान में लाने के लिए किया है। हालांकि, क्या होगा यदि मैक्रो (X.clojure में परिभाषित) को क्लोजरस्क्रिप्ट नेमस्पेस (X.clojurescript) में परिभाषित कुछ संदर्भित करने की आवश्यकता होगी? समस्या यह है कि क्लोजर कंपाइलर अन्य नेमस्पेस को हल करते समय मेरे क्लोजरस्क्रिप्ट नेमस्पेस (एक अलग निर्देशिका) में नहीं दिखता है।
मुझे अपने क्लोजर कोड में केवल नामस्थान बनाकर इस समस्या के आसपास मिल गया है, जिसमें क्लोजर्सक्रिप्ट में मौजूद समान नामस्थान और आवश्यक परिभाषा है, लेकिन यह बेवकूफ लगता है। इसलिए, उदाहरण के लिए, यदि मुझे अपने मैक्रो में X.clojurescript.abc.y की आवश्यकता है, तो मैं क्लोजर पक्ष पर एक अतिरिक्त नामस्थान बनाउंगा जो X.clojurescript.abc के क्लोजर संस्करण में डमी वाई को परिभाषित करता है; गूंगा प्रकार
मैं मैक्रो से कैसे निपटूं जिसे क्लोजरस्क्रिप्ट पक्ष पर कुछ संदर्भित करने की आवश्यकता है?
अपने मैक्रो को इस प्रकार बनाएं कि क्लोजरस्क्रिप्ट से पैरामीटर के रूप में यह सभी आवश्यक चीजें लेता है। यदि आप कुछ कोड जोड़ सकते हैं तो आपकी सीपीसिफिक क्वेरी – Ankur
का उत्तर देना बहुत आसान होगा, मुझे नहीं लगता कि मैं आपका प्रश्न समझता हूं। आपके मैक्रो को उस कोड को * जेनरेट करना होगा जिसे क्लोजरस्क्रिप्ट में मूल्यांकन किया जाएगा। तो अगर आपको किसी भी क्लोजरस्क्रिप्ट डीफ़ को संदर्भित करना है तो मैक्रो के विस्तार में प्रतीक उत्पन्न करने के लिए पर्याप्त नहीं होगा? – KIMA
'क्लोजरस्क्रिप्ट पक्ष पर कुछ देखें' आपको मैक्रो विस्तार समय पर इसकी आवश्यकता है या यह कुछ ऐसा होगा जो आउटपुट कोड में उत्सर्जित होगा? – Ankur