में तीर और डबल तीर मैक्रोज़ के बीच अंतर क्लोजर में ->
और ->>
मैक्रोज़ के बीच क्या अंतर है?क्लोजर
क्लोजर
उत्तर
दस्तावेज़ ए वेबब "क्या" की व्याख्या करने के लिए जुड़ा हुआ है, लेकिन "क्यों" का अच्छा काम नहीं करते हैं।
एक नियम के रूप में, जब कोई कार्य एकवचन विषय पर काम करता है, तो वह विषय पहला तर्क है (उदाहरण के लिए, conj
, assoc
)। जब कोई अनुक्रम अनुक्रम विषय पर काम करता है, तो वह विषय अंतिम तर्क है (उदा।, map
, filter
)।
तो, ->
और ->>
क्रमशः प्रथम और अंतिम बहस सूत्रण के रूप में लिखित हैं, लेकिन यह भी क्रमश: एक या अधिक अनुक्रमिक तर्क के लिए आवेदन के रूप में उन्हें सोचने के लिए उपयोगी है।
उदाहरण के लिए, हम एक विलक्षण वस्तु के रूप में एक सदिश पर विचार कर सकते हैं:
(-> [1 2 3]
(conj 4) ; (conj [1 2 3] 4)
(conj 5) ; (conj [1 2 3 4] 5)
(assoc 0 0)) ; (assoc [1 2 3 4 5] 0 0)
=> [0 2 3 4 5]
या हम एक दृश्य के रूप में यह विचार कर सकते हैं:
(->> [1 2 3]
(map inc) ; (map inc [1 2 3])
(map inc) ; (map inc (2 3 4))
(concat [0 2])) ; (concat [0 2] (3 4 5))
=> (0 2 3 4 5)
मुझे क्लोजर फ़ंक्शंस के बीच भेद के बारे में सोचना पड़ता है जो उनके पहले बनाम दूसरे तर्क पर काम करते हैं, क्योंकि तर्क के अनुक्रमिक होने की तुलना में वे अधिक ऑर्डर फ़ंक्शन हैं या नहीं। 'Conj' या' assoc' का पहला तर्क अक्सर अनुक्रमिक होता है, जैसा कि 'मानचित्र' या 'फ़िल्टर' के लिए दूसरा तर्क है। हालांकि, 'मानचित्र' और 'फ़िल्टर' दोनों उच्च आदेश हैं और पहले तर्क के रूप में उनके कार्यात्मक तर्क लेते हैं। तो इसे देखने के इस तरीके में, '- >>' उच्च आदेश कार्यों को चेन करने के लिए उपयोग किया जाता है और '-> अन्यथा। – jbm
एकवचन और अनुक्रमिक तर्कों के बारे में आपका बिंदु मेरे लिए बहुत समझदार बनाता है! मैं अब भी देखता हूं, मैं इन मैक्रोज़ के बारे में उलझन में क्यों था। मुद्दा यह था कि मैंने एकमात्र तर्क के साथ कार्यों को देखा, उदाहरण के लिए। '(-> 42 str)' और '(- >> 42 str)' दोनों रिटर्न '42" '। लेकिन जब मैं ऊपर दिए गए उदाहरण के माध्यम से देखता हूं, तो मेरे लिए चीज स्पष्ट होती है। – avli
- 1. क्लोजर क्लोजर
- 2. क्लोजर (fkmeans) क्लोजर
- 3. क्लोजर संपादक क्लोजर
- 4. क्लोजर
- 5. क्लोजर
- 6. क्लोजर
- 7. क्लोजर
- 8. क्लोजर
- 9. क्लोजर
- 10. क्लोजर
- 11. क्लोजर
- 12. क्लोजर
- 13. क्लोजर
- 14. क्लोजर
- 15. क्लोजर
- 16. क्लोजर
- 17. क्लोजर
- 18. क्लोजर
- 19. क्लोजर
- 20. क्लोजर
- 21. क्लोजर
- 22. क्लोजर
- 23. क्लोजर
- 24. क्लोजर
- 25. क्लोजर
- 26. क्लोजर
- 27. क्लोजर
- 28. क्लोजर
- 29. क्लोजर
- 30. क्लोजर
सी [Clojure] (http: // clojuredocs। संगठन/clojure_core/clojure.core/-% 3 ई% 3 ई) [दस्तावेज़] (http://clojuredocs.org/clojure_core/clojure.core/-%3E)। –