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