Correction:
(concat data1 data2) should be (concat data2 data1)

On Tue, Apr 26, 2011 at 6:37 PM, Jonathan Fischer Friberg <
odysso...@gmail.com> wrote:

> (defn merge-data [data1 data2]
>   (map first (partition-by :id (sort-by :id (concat data1 data2)))))
>
> Since the sorting is stable (relative order is kept), we know that the
> first occurrence of each id is either the existing map from data1, or the
> new map from data2.
>
>
> On Tue, Apr 26, 2011 at 5:34 PM, pepijn (aka fliebel) <
> pepijnde...@gmail.com> wrote:
>
>> Another option is using clojure.set, as is shown here:
>> https://github.com/pepijndevos/Begame/blob/master/src/begame/util.clj#L99
>>
>> On Apr 26, 10:10 am, Meikel Brandmeyer <m...@kotka.de> wrote:
>> > Hi,
>> >
>> > you can construct the output sequence from your input sequences.
>> >
>> > (defn merge-data
>> >   [data-orig data-override]
>> >   (let [override-ids (set (map :id data-override))]
>> >     (concat data-override (remove (comp override-ids :id) data-orig))))
>> >
>> > If you need your output sorted you can also add a "(sord-by :id ...)"
>> around
>> > the concat.
>> >
>> > Sincerely
>> > Meikel
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to