से उच्च ऑर्डर फ़ंक्शन बनाता है, मैं एक मैक्रो लिखने की कोशिश कर रहा हूं जो कि कंपोज़र में उपयोग किए गए मिडलवेयर बनाता है।क्लोजर मैक्रो जो एक फ़ंक्शन
मैं फोन करने के लिए सक्षम होना चाहते हैं:
(def-middleware plus-two [x]
(+ 2 x))
और परिणाम देखने के लिए की तरह है: अब तक ऑन लाइन गाइड पढ़ने से
(defn plus-two [f]
(fn [x]
(f (+ 2 x)))
मैं इस मिल गया है लेकिन यह पता काम नहीं कर रहा मेरे लिए:
(defmacro def-middleware [fn-name args & body]
'(defn ~fn-name [f]
(fn ~args
(f [email protected]))))
कोई मदद या एक बेहतर मैक्रो लेखन गाइड करने के लिए एक सूचक धन्यवाद बहुत अच्छा होगा,।
यह आपके लिए कैसे काम नहीं कर रहा है? –
कंपाइलरएक्सप्शन java.lang.RuntimeException: def के लिए पहला तर्क एक प्रतीक होना चाहिए, संकलित करना: (NO_SOURCE_PATH: 33) – jdoig
बैक-टिक का उपयोग करें, एकल कोट – Alex