【问题标题】:Can somebody explain this piece of clojure code?有人可以解释这段 clojure 代码吗?
【发布时间】:2015-10-04 00:48:19
【问题描述】:

我正在学习 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-5 正在应用列表的元素。但是,当我跑步时,

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

,我不知道发生了什么?

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

有人能解释一下我像上面那样运行 reduce 会发生什么吗?

【问题讨论】:

    标签: clojure


    【解决方案1】:
     (reduce add-five [0]) #gives me zero
    

    对于这一行,应用来自the documentation 的这条规则:

    如果 coll 只有 1 项,则返回且不调用 f

    否则它会将add-five 函数应用于0 和0 参数:(add-five 0 0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 2015-09-14
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多