It's the other way around: false is boxed into Boolean/FALSE. Here's the if 
stmt:

public Object eval() {
Object t = testExpr.eval();
if(t != null && t != Boolean.FALSE)
return thenExpr.eval();
return elseExpr.eval();
}

On Friday, April 13, 2012 12:45:02 PM UTC-7, Andy Fingerhut wrote:
>
> One little nit that confuses me.
>
> Boolean/FALSE is documented as being of type Boolean in Java 
> documentation, yet it is treated by Clojure the same as primitive boolean 
> false:
>
> user=> (clojure-version)
> "1.3.0"
> user=> (if Boolean/FALSE "logical true" "logical false")
> "logical false"
> user=> (identical? Boolean/FALSE false)
> true
>
> Does anyone know why?
>
> Thanks,
> Andy
>
>
> On Fri, Apr 13, 2012 at 11:41 AM, Sean Corfield <seancorfi...@gmail.com>wrote:
>
>> On Fri, Apr 13, 2012 at 3:33 AM, Vinzent <ru.vinz...@gmail.com> wrote:
>> > Just like Boolean's javadoc puts a strong
>> > emphasis on the fact that public Boolean(boolean value) constructor 
>> usually
>> > shouldn't be used, clojure's docstring should say that (= x false) may 
>> give
>> > you a result which will confuse you, so you'd better use 'false?' 
>> instead.
>>
>> (def f (Boolean. false))
>> (false? f)
>> ;; => false
>> (true? f)
>> ;; => false
>> (= f false)
>> ;; => true
>> (if f :t :f)
>> ;; => :t
>>
>> So 'false?' doesn't help you here.
>>
>> No one should be using (Boolean. false) in Clojure code - we have true
>> / false. Why create a Java object whose documentation says not to do
>> it?
>>
>> So if anyone runs into this problem _in real world code_ it's because
>> they are calling a Java API that somehow returns a Java Boolean object
>> embedded in the result. If you are working with a Java data structure
>> full of _Objects_ then you need to take care of converting those
>> Object instances into appropriate Clojure values. Calling (boolean v)
>> is sufficient to convert the Java Object to a Clojure true/false
>> value.
>> --
>> Sean A Corfield -- (904) 302-SEAN
>> An Architect's View -- http://corfield.org/
>> World Singles, LLC. -- http://worldsingles.com/
>>
>> "Perfection is the enemy of the good."
>> -- Gustave Flaubert, French realist novelist (1821-1880)
>>
>> --
>> 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
>>
>
>

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