Novice question, but I don't really understand why there are so many operations for constructing maps in clojure.
You have conj, assoc and merge, but they seem to more or less do the same thing?
(assoc {:a 1 :b 2} {:c 3})
(conj {:a 1 :b 2} :c 3)
(merge {:a 1 :b 2} {:c 3})
Whats really the difference and why are all these methods required when they do more or less the same thing?