On Feb 23, 2010, at 8:47 PM, pthatcher <[email protected]> wrote:

I noticed a funny bug in Clojure 1.2's case macro.  It doesn't work
with *vars*.  For example:

(def *a* "a")

;this is true
(case "a"
"a" true
false)

;but this is false!
(case "a"
*a* true
false)

If you read the first line or two of the docs for case I think you'll see it's not a bug but documented behavior. The values in the case test clauses must be constants, so not a var or local. If you need those test values to be evaluated then your "work around" of using condp (or cond) is entirely appropriate.

--chouser

--
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

Reply via email to