मैं इस फार्म का एक नक्शा है कहते हैं:बेहतर तरीका clojure में अगर-जाने
(def m {:a "A" :b "B"})
और मैं कुछ करने के लिए करता है, तो :a
और :b
दोनों शून्य नहीं हैं चाहता हूँ, मैं कर सकते हैं:
(if-let [a (:a m)]
(if-let [b (:b m)]
... etc))
या
(if (and (:a m) (:b m))
(let [{a :a b :b} m]
... etc))
या यहाँ तक कि
+०१२३५१६४१०६(if (every? m [:a :b])
(let [{a :a b :b} m]
... etc))
क्या यह प्राप्त करने के लिए कोई नीदर (यानी एक-पंक्ति) तरीका है? - Clojure की एक उपयोगी सुविधा map destructuring
user> (not-any? nil? [(m :a) (m :b)])
true
user> (not-any? nil? [(m :a) (m :b) (m :d)])
false
user>
सुनिश्चित नहीं हैं कि इस सवाल का जवाब ... – noahlz
'(हर? कुछ? ...) बेहतर नहीं होगा? इस तरह आप दोहरी अस्वीकृति – kosii
से बच सकते हैं? कई मामलों में मामूली समय में सुधार के लिए, जब कोई पाया जाता है तो जांचना बंद कर सकता है –