Can someone help me write a merge function between two maps? My problem
is as follows:
I have original data in a map:
(def data-orig
'({:id 2 :a2 34 :a3 76 :a4 87},
{:id 3 :a2 30 :a3 38 :a4 39},
{:id 5 :a2 67 :a3 32 :a4 38},
{:id 4 :a2 10 :a3 73 :a4 38},
{:id 7 :a2 84 :a3 86 :a4 63}))
Then I have override data:
(def data-override
'({:id 2 :a2 5534 :a3 5576 :a4 5587},
{:id 3 :a2 5584 :a3 5586 :a4 5563},
{:id 12 :a2 5593 :a3 5512 :a4 5539},
{:id 13 :a2 5509 :a3 5539 :a4 5592}))
The result should be a merge of the two with the following conditions:
If the id is the same, should override the original data. If id is not
present in original then it should be added. The result should be:
'({:id 2 :a2 5534 :a3 5576 :a4 5587}, ;overriden
{:id 3 :a2 5584 :a3 5586 :a4 5563}, ;overriden
{:id 5 :a2 67 :a3 32 :a4 38},
{:id 4 :a2 10 :a3 73 :a4 38},
{:id 7 :a2 84 :a3 86 :a4 63},
{:id 12 :a2 5593 :a3 5512 :a4 5539}, ;added
{:id 13 :a2 5509 :a3 5539 :a4 5592}) ;added
Thanks for your help.
-- Shoeb
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en