clojure改变地图的矢量

时间:2013-11-10 03:56:10

标签: clojure

(def tables
    [{:table "A" :occupied false :party nil} 
     {:table "B" :occupied false :party nil}
     {:table "C" :occupied false :party nil}])

1)如何使用矢量更改单个地图?

离。 set:occupied = true其中:table =" C"

2)更新所有地图值怎么样? 恩。所有地图都设置为:occupied = false

1 个答案:

答案 0 :(得分:1)

(map (fn [t] (if (= (:table t) "C") (assoc t :occupied true) t)) tables)

(map #(assoc % :occupied false) tables)

请注意,这些不会更改您的表,因为它们是不可变的数据结构,此代码将返回一个新的表序列,其中包含您描述的差异。