पर पारित तर्कों की गलत संख्या प्राप्त करना अधिक क्लोजर अजीबता। मेरे पास यह फ़ंक्शन है जिसे मैं परिभाषित करने और कॉल करने का प्रयास कर रहा हूं। यह 3 तर्क हैं, लेकिन जब मैं 3 तर्कों से कॉल करने की मैंक्लोजर फ़ंक्शन
Wrong number of args (1) passed to: solr-query$correct-doc-in-results-QMARK-$fn
[Thrown class clojure.lang.ArityException]
मिलता है जब मैं 2 तर्कों से कॉल करने की मैं
Wrong number of args (2) passed to: solr-query$correct-doc-in-results-QMARK-
[Thrown class clojure.lang.ArityException]
हो और जब मैं 4 तर्क से कॉल करने की मैं
मिल(defn correct-doc-in-results? [query results docid]
"Check if the docid we expected is returned in the results"
(some #(.equals docid) (map :id (get results query))))
:
Wrong number of args (4) passed to: solr-query$correct-doc-in-results-QMARK-
[Thrown class clojure.lang.ArityException]
यहाँ समारोह की परिभाषा है
(correct-doc-in-results? "FLASHLIGHT" all-queries "60184")
किसी को भी किसी भी विचार क्या हो रहा है है:
और यहाँ कैसे मैं (Emacs में स्वांक का उपयोग कर आरईपीएल से) इसे कहते हैं कोशिश कर रहा हूँ है? ऐसा क्यों लगता है कि जब मैं 3 गुजर रहा हूं, तो मैं केवल 1 तर्क में गुजर रहा हूं, लेकिन यह 2 या 4 के लिए सही हो जाता है? मैं अभी तक एक बहुत ही धाराप्रवाह क्लोजर प्रोग्रामर नहीं हूं, लेकिन एक समारोह को परिभाषित करना काफी बुनियादी है।
बेशक। सरल स्पष्टीकरण के लिए धन्यवाद। –
@ ब्रायन वास्तव में त्रुटि है क्योंकि अनाम फ़ंक्शन शून्य तर्क चाहता है (इसमें कोई% नहीं है) और 'कुछ' द्वारा कॉल किए जाने पर एक प्राप्त हो रहा है। बेशक, अगर वास्तव में फ़ंक्शन * को बिना किसी तर्क के बुलाया गया था, तो यह केवल एक तर्क के साथ '.equals' को कॉल करने का प्रयास करके एक और त्रुटि उत्पन्न करेगा। – amalloy
आप सही हैं, मैं अपना जवाब संपादित करूंगा। –