में उपयोग के लिए मैं आज इस clojure समस्या की खोज की। यदि सेट में कोई भी मान सेट नहीं है, तो यह अंतिम मान देता है। समस्या यह है कि contains?
फ़ंक्शन पहले संग्रह लेता है और फिर कुंजी और condp
को पहले कुंजी की आवश्यकता होती है।क्लोजर: इसमें पैरामीटर को उलटना शामिल है?</p> <pre><code>(condp contains? some-set "foo" "foo's in thar" "bar" "bar's in thar" "t'aint thar") </code></pre> <p>विचार पहला मैच जहां <code>some-set</code> कोई मान के तहत स्ट्रिंग वापस जाने के लिए है: condp
(defn reverse-params [f] (fn [a b] (f b a))
और इसे करने के लिए एक फोन प्रतिस्थापन:
मैं एक समारोह लिख कर "तय" यह
(condp (reverse-params contains?) some-set
"foo" "foo's in thar"
"bar" "bar's in thar"
"t'aint thar")
कौन सा काम करता है, लेकिन मेरे सवाल का मैं क्या करने के लिए कुछ बेहतर तरीका याद आ रही है यह (शायद some
का उपयोग करके)? मैं cond
का उपयोग कर सकता था लेकिन मुझे लगा कि इस तरह से मुझे कुछ टाइपिंग बचाती है।
'रिवर्स-पैराम्स' फ़ंक्शन के लिए सामान्य नाम ['flip'] (https://gist.github.com/micmarsh)/bcbe19c9de8bb7a471bf) – noisesmith