Больше Clojure странности. У меня есть эта функция, которую я пытаюсь определить и вызвать. У этого есть 3 аргумента, но когда я вызываю это с 3 аргументами, я получаю
Wrong number of args (1) passed to: solr-query$correct-doc-in-results-QMARK-$fn
[Thrown class clojure.lang.ArityException]
когда я называю это двумя аргументами, я получаю
Wrong number of args (2) passed to: solr-query$correct-doc-in-results-QMARK-
[Thrown class clojure.lang.ArityException]
и когда я вызываю его с 4 аргументами, я получаю
Wrong number of args (4) passed to: solr-query$correct-doc-in-results-QMARK-
[Thrown class clojure.lang.ArityException]
вот определение функции:
(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))))
и вот как я пытаюсь это назвать (из REPL с использованием swank в emacs):
(correct-doc-in-results? "FLASHLIGHT" all-queries "60184")
Кто-нибудь знает, что происходит? Почему он думает, что я передаю только один аргумент, когда я прохожу 3, но правильно ли это получается для 2 или 4? Я еще не очень беглый программист Clojure, но определение функции довольно элементарно.