Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure reduce无法对IFn长时间施放_Clojure_Classcastexception - Fatal编程技术网

Clojure reduce无法对IFn长时间施放

Clojure reduce无法对IFn长时间施放,clojure,classcastexception,Clojure,Classcastexception,这个周末我决定学习clojure。我被reduce卡住了。我得到了一个类强制转换异常 (reduce #((cond (= %1 0) %2 :else %1)) 0 '(1 1 1)) ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn user/eval2092/fn--2093 (form-init1869535703328200664.clj:1) 我不确定我到底做错了什么。非常感谢您的帮助:)函

这个周末我决定学习clojure。我被reduce卡住了。我得到了一个类强制转换异常

(reduce #((cond (= %1 0) %2 :else %1)) 0 '(1 1 1))

ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn  user/eval2092/fn--2093 (form-init1869535703328200664.clj:1)

我不确定我到底做错了什么。非常感谢您的帮助:)

函数文本读取器宏
#(…)
自动为正文中的表达式提供括号,因为它通常是一个简单的函数应用程序。在您的例子中,
cond
被扩展为数值
1
,然后括号将其转换为
(1)
,这不是有效的函数应用程序

删除内括号:

(reduce #(cond (= %1 0) %2 :else %1) 0 '(1 1 1))