Maps - sorokod/Clojure-Notes GitHub Wiki

; ## use optional commas to seperate pairs
(def m_map {:a 1, :b 2, :c 3, 4 "4"}) 

; ## add a mapping to existing map
(assoc m_map 5 "5") ;{:a 1, :b 2, :c 3, 4 "4", 5 "5"}


; ## maps are functions
(m_map :a) ; 1
(m_map 4)  ; "4"

; ## keywords are functions
(:a m_map) ; 1

Can merge two maps. Can provide an operator to merge-with values that map to same keys

(merge {:a 1} m_map)         ;{:a 1, :b 2, :c 3, 4 "4"} 
(merge-with + {:a 99} m_map) ;{:a 100, :b 2, :c 3, 4 "4"}