clojure
थ्रेडिंग मैक्रोज़
खोज…
परिचय
एरो मैक्रोज़ के रूप में भी जाना जाता है, थ्रेडिंग मैक्रोज़ नेस्टेड फ़ंक्शन कॉल को फ़ंक्शन कॉल के रैखिक प्रवाह में परिवर्तित करते हैं।
थ्रेड लास्ट (- >>)
यह मैक्रो किसी दिए गए लाइन के आउटपुट को अगली लाइन फ़ंक्शन कॉल के अंतिम तर्क के रूप में देता है। उदाहरण के लिए
(prn (str (+ 2 3)))
वैसा ही है
(->> 2
(+ 3)
(str)
(prn))
थ्रेड फर्स्ट (->)
यह मैक्रो किसी दिए गए लाइन के आउटपुट को अगली लाइन फ़ंक्शन कॉल के पहले तर्क के रूप में देता है। उदाहरण के लिए
(rename-keys (assoc {:a 1} :b 1) {:b :new-b}))
कुछ भी नहीं समझ सकता, है ना? चलो फिर से कोशिश करते हैं, -> के साथ
(-> {:a 1}
(assoc :b 1) ;;(assoc map key val)
(rename-keys {:b :new-b})) ;;(rename-keys map key-newkey-map)
धागा के रूप में (as->)
यह पहले थ्रेड या थ्रेड लास्ट के लिए अधिक लचीला विकल्प है। इसे फ़ंक्शन के मापदंडों की सूची में कहीं भी डाला जा सकता है।
(as-> [1 2] x
(map #(+ 1 %) x)
(if (> (count x) 2) "Large" "Small"))
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow