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

1) ベクターを使用して 1 つのマップを変更するにはどうすればよいですか?

元。set :占有 = true where :table= "C"

2) すべてのマップ値を更新するのはどうですか? 元。すべてのマップに対して :占有 = false を設定します

4

1 に答える 1

1

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

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

これらは不変のデータ構造であるため、テーブルを変更しないことに注意してください。代わりに、このコードは、説明した違いを持つ新しいテーブルのシーケンスを返します。

于 2013-11-10T04:08:00.433 に答える