...or you can go all the way, skipping reset! completely:

(swap! game-objects (fn [objects] (reduce-kv #(assoc % %2 (update-object %3)) {} objects) ))

Jim

ps: I've not tested this but i don't see why this approach wouldn't work...


On 21/01/13 20:24, Jim - FooBar(); wrote:
use reduce-kv on the original map to save some intermediate vector allocation...something similar has come up recently...

(reduce-kv #(assoc % %2 (update-object %3)) {} @game-objects)

Jim

On 21/01/13 20:21, JvJ wrote:
I'm updating a set of objects stored in a map, and I feel like the way I'm doing it right now is inefficient. Is there a better way?

(defn update-all-objects
  "Updates all game objects."
  (reset! *game-objects*
          (into {}
                (for [[k v] @*game-objects*]
                  [k (update-object v)]))))
--
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