2015-10-04 62 views
2

我学习Clojure的,我有问题,理解这一Clojure的代码,所以我有这个部分功能有人可以解释这段clojure代码吗?

(def add-five (partial + 5)) 

当我运行,

(add-five 2)# I get 7 
(add-five 2 5) # I get 12 

对于第一次,我给一个说法;其次,我提出两个论点。

(map add-five [1 2 3 4 5]) 

这给了我

(6 7 8 9 10) 

在这里,我假设,加个正在应用的列表的元素。但是,当我跑,

(reduce add-five [1 2 3 4 5]) 

,我不知道发生了什么?

(reduce add-five [0]) #gives me zero 
(reduce add-five [0 0]) #gives me five 

有人可以解释发生了什么我运行减少像上面吗?

回答

6
(reduce add-five [0]) #gives me zero 

对于这条线被应用于从the documentation此规则:

如果科尔只有1个项目,则返回和f不叫

否则应用add-five功能到00参数:(add-five 0 0)

相关问题