आप केवल चर सही मूल्य प्राप्त करने के लिए बाध्य है और यह दो बार वहाँ एक अन्य तरीका है कि आप नहीं है का उपयोग करने के हैं कर सकते है। कोर में एक फ़ंक्शन है जिसे fnil
कहा जाता है।
आप जिस फ़ंक्शन को कॉल करना चाहते हैं और डिफ़ॉल्ट तर्क के साथ fnil
पर कॉल करते हैं। यह एक फ़ंक्शन वापस करेगा जो आपके द्वारा प्रदान किए गए डिफ़ॉल्ट मान के साथ नाइल्स को प्रतिस्थापित करेगा।
आप जो चाहते हैं उसके आधार पर आप चीजों में से एक कर सकते हैं। एक स्थानीय समारोह बनाएँ।
(let [default-fn (fnil fn-you-want-to call "default-argument")]
(default-fn input-argument))
somecases (जहां हमेशा एक ही डिफ़ॉल्ट तर्क है) आप अपने कोड से बाहर यह करने के लिए तर्क को स्थानांतरित और डाल यह मूल कार्य किया गया था, जहां कर सकते हैं (या एक दूसरे में मामले में समारोह लपेट इसमें पुस्तकालय)।
(defn fn-you-want-to-call [arg] ....)
(def fn-you-want-to-call-default (fnil fn-you-want-to-call "default-argument"))
फिर अपने कोड में अपनी बस
(fn-you-want-to-call-default input-argument)
अधिक आप यहां पा सकते हैं करने के लिए कम: http://clojuredocs.org/clojure_core/clojure.core/fnil
तो शायद आप कर रहे हैं तो आप इस एक बहुत, इनपुट तर्क के साथ विशेष रूप से करते हैं, एक समारोह के लिए अनजान है कि आप [एकाधिक हस्ताक्षर] परिभाषित कर सकते हैं (http://stackoverflow.com/questions/3208347/how-to-create-default-value-for-function-argument-in-clojure)। – coredump