有人可以解释下面 Clojure 代码中的行为吗?我不明白。Clojure 是否以某种方式替换或“优化”函数参数?为什么调用带有单个 nil 参数的函数会导致ArityException
?
(defn foo [bar] (reduce #(%1) bar))
(foo nil)
-> ArityException Wrong number of args (0) passed to: test$foo$fn clojure.lang.AFn.throwArity (AFn.java:437)