EmptyList无法强制转换为clojure.lang.IFn

时间:2016-03-31 01:02:21

标签: clojure

我想检查给定列表的编号是否为0,但我的代码返回EmptyList不能转换为clojure.lang.IFn。

(defn fun [ls]
    (println ls)
    (println "hello")
    (println (count ls))
    (if (<= 0 (count (ls))) true
         (println "testing")))

#'user/fun
user=> (fun '())
()
hello
0

ClassCastException clojure.lang.PersistentList$EmptyList cannot be cast to clojure.lang.IFn  user/fun (form-init4069658807942123979.clj:5)

有没有人可以帮助我?非常感谢你!

2 个答案:

答案 0 :(得分:1)

这个表达式:

(count (ls))

应该是

(count ls)

它试图将ls的当前值作为函数调用。当ls是值()时,它会抱怨尝试将空列表作为函数调用,而不是。

答案 1 :(得分:1)