Я пытаюсь обновить карту, находящуюся внутри атома. На каждую карту ссылается значение.Обновление карты Clojure, которая завернута внутри атома
(def a (atom {}))
(defn foo [id mps]
(let [x (merge (get mps id) mps)]
(swap! a assoc id x) x))
(foo 2 {:baz 88}) => {:baz 88}
@a => {2 {:baz 88}}
(foo 2 {:bar 99}) => {:bar 99} ??
@a => {2 {:bar 99}} ??
Это, скорее всего, переписывает карту вместо ее обновления. В результате я ищу это:
(foo 2 {:baz 88}) => {:baz 88}
@a => {2 {:baz 88}}
(foo 2 {:bar 99}) => {:bar 99, :baz 88}
@a => {2 {:bar 99, :baz 88}}
Любая помощь будет большим
вы сэр это мужчина .. спасибо – adebesin
'assoc-in' должен работать. Он создает все несуществующие ключи. – ClojureMostly