On Mon, 21 Mar 2011 07:52:45 -0700 (PDT) Jonathan Smith <jonathansmith...@gmail.com> wrote:
> Here is a way that should work. > > (let [missing (gensym)] > (defn get-with-exception [map key] > (let [res (get map key missing)] > (if (= res missing) > (throw (new Exception "my-exception")) > res)))) > > Gensyms are unique so you also don't have the problem of 'what happens > if I put an exception in the map' in this case. > You don't want to be executing the gensym more than once, or the > exception more than once. > Symbol comparison should also be reasonably fast, which is good. The fastest way to create unique object is to call the constructor of java.lang.Object: (let [missing (Object.)] ...) -- Mikhail -- 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