在clojure中,调用reduce *en empty collection返回1.这是非常令人惊讶的.
reduce *
我在创建阶乘函数时做了这个发现,定义如下:
(defn factorial [n] (reduce * (take-while #(> % 0) (iterate dec n))))
(factorial 0)正确返回1,没有我必须为零编写一个特殊情况.怎么会 ?
(factorial 0)
1
clojure
clojure ×1