Я новичок в clojure. Я определил функцию в test.clj
(defn foldl [f val coll]
(if (empty? coll) val
(foldl f (f val (first coll)) (rest coll))))
Я попытался загрузить этот файл
user=> load-file "test.clj"
#object[clojure.lang.RT$3 0x16bb1d20 "clojure.lang.RT$3@16bb1d20"]
"test.clj"
Он не жалуется, но когда я пытаюсь его использовать
foldl + 0 (1 2 3)
Я получаю
Syntax error compiling at (REPL:0:0).
Unable to resolve symbol: foldl in this context
#object[clojure.core$_PLUS_ 0x3df3a187 "clojure.core$_PLUS_@3df3a187"]
0
Execution error (ClassCastException) at user/eval2008 (REPL:1).
java.lang.Long cannot be cast to clojure.lang.IFn
Как мне заставить его скомпилировать и сообщить мне, что не так с функцией, когда я загружаю ее, а не когда выполняю? И что означает ошибка?