Clojure中带有映射的函数参数

Bre*_*ung 1 clojure

在过去的两天里,我与Clojure在一起,碰到了这段代码:

(defn reduce-example
  [new-map [key val]]
  (assoc new-map key (inc val)))

(reduce reduce-example
        {}
        {:max 30 :min 10})
; => {:max 31, :min 11}
Run Code Online (Sandbox Code Playgroud)

我对中的函数参数感到困惑reduce-example,更具体地说:new-map [key value]

根据到目前为止的研究,在函数名称之后,您可以声明参数(arities)的数量。例如[x y z],但是什么[new-map [key value]]意思呢?当然,它可以提取关键和价值,但是如何呢?我应该如何解释这个函数参数?

谢谢

Sha*_*ang 6

[new-map [key value]] 表示该函数需要两个参数:

  • 第一个将绑定到名称 new-map

  • 第二个(应该是内部有2个元素的顺序类型)。里面的元素将绑定到keyvalue

Clojure具有解构能力