Great stuff - thanks Jim. (not sure why my previous post got lost) On Tuesday, November 19, 2013 11:48:17 AM UTC, Jim foo.bar wrote: > > On 19/11/13 11:42, Jim - FooBar(); wrote: > > On 19/11/13 11:29, Colin Yates wrote: > >> Imagine the sequence represents a distribution between 1 and 5. The > >> initial sequence might only be [{:key 3 :value 30} {:key 4 :value > >> 40}]. I want it to be [{:key 1 :value nil} {:key 2 :value nil} {:key > >> 3 :value 30} {:key 4 :value 40} {:key 5 :value nil}]. > > > > > > (def map-seq [{:key 3 :value 30} {:key 4 :value 40}]) > > (def mandatory-keys (range 1 6)) > > > > (sort-by :key > > (reduce > > #(if (some #{%2} (map :key %)) > > % > > (conj % {:key %2 :value nil})) map-seq mandatory-keys)) > > > > => ({:key 1, :value nil} {:key 2, :value nil} {:key 3, :value 30} > > {:key 4, :value 40} {:key 5, :value nil}) > > > > > > Jim > > > of course if the keys are known in advance, you don't want to calculate > them every single time: > > (let [ks (map :key map-seq)] > (sort-by :key > (reduce > #(if (some #{%2} ks) % > (conj % {:key %2 :value nil})) map-seq mandatory-keys))) > > Jim >
-- -- 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/groups/opt_out.