2013-11-10 46 views
0
(def tables 
    [{:table "A" :occupied false :party nil} 
    {:table "B" :occupied false :party nil} 
    {:table "C" :occupied false :party nil}]) 

1)如何使用矢量对单个地图进行更改?clojure更改为地图矢量

ex。 set:occupied = true其中:table =“C”

2)如何更新所有的地图值? ex。设置:占领= false为所有地图

回答

1

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

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

注意,这些不会改变你的表,因为它们是不可变的数据结构,这个代码将改为返回与表的新序列你描述的差异。

+0

谢谢!我正在努力争取正确的语法。 –