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.


Reply via email to