小编Den*_*nis的帖子

为什么(reduce*[])评估为1?

在clojure中,调用reduce *en empty collection返回1.这是非常令人惊讶的.

我在创建阶乘函数时做了这个发现,定义如下:

(defn factorial [n] (reduce * (take-while #(> % 0) (iterate dec n))))
Run Code Online (Sandbox Code Playgroud)

(factorial 0)正确返回1,没有我必须为零编写一个特殊情况.怎么会 ?

clojure

4
推荐指数
1
解决办法
125
查看次数

标签 统计

clojure ×1