2013-11-10 68 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

謝謝!我正在努力爭取正確的語法。 –