I want to use merge-with * to solve your problem. To do so, define a couple of helper functions
(defn v->m [v] (into (sorted-map) (for [{:keys [id val]} v] [id val]))) (defn m->v [m] (mapv (fn [[k v]] {:id k :val v}) m)) that can convert your structure to and from sorted maps. With these, it boils down to a call to merge-with (m->v (merge-with * (v->m xs) (v->m ys))) -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.