एकमात्र लाभ जो मैं देख सकता हूं वह यह है कि इसका मतलब है कि कोई partial
पर कॉल से बचाता है।क्यों क्लोजर थ्रेड आखिरी (- >>) एक मैक्रो है?
(defn foldl [f acc xs]
(loop [acc acc
xs xs]
(if (empty? xs)
acc
(recur (f (first xs) acc) (rest xs)))))
(defn $ [f x] (f x))
(defn thread-last [x & rest]
(foldl $ x rest))
देता है:
(thread-last (range 10)
(partial map inc)
(partial filter odd?)
(partial reduce +)) => 25
(->> (range 10)
(map inc)
(filter odd?)
(reduce +)) => 25
वहाँ रहे हैं किसी भी मामले हैं जब एक कार्यात्मक/स्पष्ट संस्करण विफल हो जाएगा?
क्या आप ऐसे मामलों की मांग कर रहे हैं जहां प्रत्येक फॉर्म की शुरुआत में 'आंशिक' चिपकाना काम नहीं करेगा, या आप * उपयोगी * ऐसे मामलों के लिए पूछ रहे हैं? –
पहला, जैसा कि कोई व्यक्ति आंशिक (या तर्क प्लेसमेंट के लिए लैम्ब्डा) का उपयोग नहीं कर सकता था। – beoliver