2

具体来说,在以下情况下应该发生什么:

(defn avg
  ([] 0)
  ([& args] (/ (reduce + args) (count args))))

(avg)

即,我可以依靠 clojure 始终返回 0 而不是除以零吗?

4

1 回答 1

6

可以依靠 Clojure 返回 0 而不是被零除。但这不是第一场比赛,而是先发球:

(defn avg
  ([& args] (/ (reduce + args) (count args)))
  ([] 0))

(avg)
; 0

如here所述,特定的arities优先于其余参数。

于 2014-04-15T19:51:53.170 回答