Ah OK, I didn't realise. I thought the vars would be locally scoped, i.e. semantically equivalent to 'let'ed symbols.
Thanks everyone for contributing. On Friday, 21 June 2013 14:49:52 UTC+1, Jim foo.bar wrote: > > On 21/06/13 14:34, Colin Yates wrote: > > Is it correct but simply non-idiomatic? > > > no no it's actually very *dangerous*...by doing this you're essentially > introducing mutable global state in your program and Clojure is a language > that strives hard to minimise mutable and especially global state! I > wouldn't say 'wrong' because the compiler lets you do it but it is > certainly nasty code! > > Also note that if I move the body out of the 'let' version of the array > into another function passing in the array then the performance is the same > as the 'def' version, so even if def is a problem it isn't the only cause. > > > using 'let' or passing the array as parameter is the nice and safe > approach. The general performance of clojure when it comes to primitive > arrays was discussed very recently in this thread [1] and was concluded > that Clojure does indeed match java's performance. The specific use-case > actually was summing up primitive arrays. I encourage you read it...In a > nutshell, If you're using leiningen, add this entry to your project.clj and > rerun your benchmarks. > > :jvm-opts ^replace [] > > Jim > > [1] https://groups.google.com/forum/#!topic/clojure/LTtxhPxH_ws > > -- -- 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 --- 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
