Hi,

I encountered unexpected behavior of the 'if' form in clojure when using 
instances of java.lang.Boolean as the condition. I wanted to convert 
input strings to booleans and used the constructor of the Boolean class 
with the string parameter. However, when I pass these values as a 
condition to if, the true-branch always gets executed. For example:

 > (if (Boolean. "true") 1 2)
1
 > (if (Boolean. "false") 1 2)
1

It seems to me that this has to do with the identity of the objects, as 
(Boolean. "false") is not identical (although equal) to the clojure 
literal false. Is this behavior intentional or a bug?

The problem does not occur when I use Boolean/parseBoolean which returns 
a lower case boolean.

So long
Janico

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

Reply via email to