मैं clojure स्रोत ब्राउज़ कर रहा था और मैं जिस तरह से आश्चर्यचकित था जब मैक्रो परिभाषित किया गया है:clojure जब मैक्रो
user=> (source when)
(defmacro when
"Evaluates test. If logical true, evaluates body in an implicit do."
{:added "1.0"}
[test & body]
(list 'if test (cons 'do body)))
nil
user=>
मैं इसे उम्मीद कर रहा था बजाय कुछ इस तरह लिखा होना चाहिए:
(defmacro when [test & body] `(if ~test (do [email protected])))
वास्तविक मैक्रो इस कम सामान्य तरीके से क्यों लिखा गया था?
प्रयोग किया जाता है काश मैं था अधिक को वोट देने के लिए इस । –
रेखा 680 defmulti मैक्रो प्रतीत होता है। और वाक्यविन्यास उद्धरण (मुझे लगता है) एक पाठक मैक्रो है। क्या आप सिंटैक्स उद्धरण के लिए बिल्कुल फ़ंक्शन/मैक्रो की आवश्यकता के बारे में विस्तार कर सकते हैं? – Kevin
केविन, आप उन पंक्ति संख्याओं के पीछे लिंक का पालन क्यों नहीं करते हैं। लाइन 682 पर या उसके पास कोई 'defmulti' नहीं है, इसलिए आप शायद इस फ़ाइल के किसी अन्य संस्करण को देख रहे हैं। सिंटैक्स उद्धरण के लिए क्या आवश्यक है, यह सरल है: ** फ़ाइल के इस विशेष संस्करण में पंक्ति 682 ** से ऊपर परिभाषित सब कुछ। –