Boolean/FALSE refers to the false value, not a boolean object.
In Java you have primitive types and classes related to these types.
false is the primitive value while (Boolean. false) is the object equivalent.

The handling is much more efficient and simple with primitive types.

Another reason to stay away from these things....

> why is there an exception for Boolean.FALSE?
> 
> Am 07.04.2012 17:28, schrieb Softaddicts:
> > Hi,
> > 
> > You are not in the Clojure play ground when you use (Boolean. false).
> > 
> > This expression creates a Java object, hence (if any-java-object ...)
> > always evaluate the "true" branch in Clojure.
> > 
> > In Clojure, anything not nil is true except false which is equivalent to 
> > the Java
> > false value.
> > (if false....) (if nil ...) will both evaluate the "false" branch.
> > 
> > In your specific case, (if (.booleanValue (Boolean. false)) ...) would 
> > correctly
> > evaluate since booleanValue returns the value in the object, not the
> > object itself.
> > 
> > If you can, stay in Clojure and avoid Java for a while until you get more
> > code lines behind you.
> > 
> > Hope I am clear enough, just woke up :)
> > 
> > Luc
> > 
> > 
> >> Hi,
> >>
> >> I am using Clojure for a month now. I like it a lot so far, but there
> >> are a couple of little details that make me very afraid. Foremost:
> >>
> >> (if (Boolean. false) "jesus" "christ")
> >>
> >> will return "jesus", not "christ". Googling this on the net, I found
> >> that this is a known phenomenon, and some rationalizations of why this
> >> is the correct thing to do (it is not, sorry Rich).
> >>
> >> I could live with this, but I have code that is written completely in
> >> clojure, and does not create Boolean objects in any explicit way, or
> >> uses third-party libraries except for the stuff in clojure.core and
> >> slingshot. Nevertheless, somehow Boolean objects seem to creep into
> >> live, and I have code like that:
> >>
> >> (if (:leaf m-node)
> >>     ....
> >>     ...
> >> )
> >>
> >> that breaks because of it. I am using from the github repository
> >> ( 14428c296de483ea666bd874701046e7088e545c).
> >>
> >> This means that I cannot trust my code on the most basic level, and
> >> this is unacceptable.
> >>
> >>
> >> -- 
> >> 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
> >> Note that posts from new members are moderated - please be patient with 
> >> your first post.
> >> 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
> >>
> > --
> > Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail!
> > 
> 
> 
> -- 
> 
> -- 
> 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
> Note that posts from new members are moderated - please be patient with your 
> first post.
> 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
> 
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail!

-- 
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
Note that posts from new members are moderated - please be patient with your 
first post.
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