Thanks that makes sense now... Sunil. On Sat, Dec 17, 2011 at 1:15 AM, Mark Engelberg <[email protected]>wrote:
> Fleshing out the solution I outlined in a previous email, here's a > concrete implementation that lets you use maps as priorities. > > (defn- make-id-generator [] > (let [i (atom 0), > generate-unique-id (fn generate-unique-id [item] (swap! i inc))] > (memoize generate-unique-id))) > > (defn- make-map-comparator [] > (let [id (make-id-generator)] > #(compare [(count %2) (id %2)] [(count %1) (id %1)]))) > > (def p (priority-map-by (make-map-comparator))) > > > [Note that this implementation keeps the memoization cache local to > the priority-map, so if your priority map goes out of scope, the > memoization cache should be garbage collectable] > -- 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
