What if there's some computation in there, but such that should be performed at compile time? I still prefer the outside let whenever I want to make dead sure it's not getting reallocated on each call. If there was some well-specified and easily understood guarantee (for example, like the one Java has for compile-time constants), only then I would prefer the inner let.
On Friday, March 22, 2013 8:05:10 PM UTC+1, Laurent PETIT wrote: > > > 2013/3/22 jamieorc <jami...@gmail.com <javascript:>> > >> Curious which style is preferred in Clojure and why: >> >> (defn f1 [] >> (let [x {:foo 1 :bar 2 :baz 3}] >> (keys x))) >> >> (let [x {:foo 1 :bar 2 :baz 3}] >> (defn f2 [] >> (keys x))) >> > > In either case, AFAIK, the compiler will recognize {:foo 1 :bar 2 :baz 3} > as constant and will only create it once when compiling. > > First version is preferred. > > >> >> Cheers, >> >> Jamie >> >> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- -- 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.