Dio
Dio

Reputation: 660

Update-in nested map

I'm new to clojure and I've been staring at this for some time, I'm sure there's something basic I just don't see. I want to conj two sets, but they're nested, example:

(def foo {:b #{:test}})
(def bar {:a {:b #{:ab}} :c :d})

I tried:

=>(update-in bar [:a :b] conj (:b foo) )
{:a {:b #{#{:test} :ab}}, :c :d}

I guess that makes sense, but what I wanted was {:a {:b #{:test :ab}}, :c :d}

I just can't seem how to get either #{:test} out of the set to conj it, or to properly access :b as a set given the update-in syntax.

Any help is enormously appreciated.

Upvotes: 0

Views: 128

Answers (1)

Michał Marczyk
Michał Marczyk

Reputation: 84331

You need to use into instead of conj:

(update-in bar [:a :b] into (:b foo))
;= {:a {:b #{:test :ab}}, :c :d}

Upvotes: 1

Related Questions