我正在学习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)
在这里,我假设,add-five正在应用列表中的元素。但是当我跑步时,
(reduce add-five [1 2 3 4 5])
,我不知道发生了什么事?
(reduce add-five [0]) #gives me zero
(reduce add-five [0 0]) #gives me five
有人可以解释一下我运行如上所述的减少会发生什么吗?
答案 0 :(得分:6)
(reduce add-five [0]) #gives me zero
对于此行,the documentation适用此规则:
如果coll只有1个项目,则返回它并且不调用f
否则,它会将add-five
函数应用于0
和0
个参数:(add-five 0 0)