I understand the points you've described, but as I written earlier the 
thing which is really confuses me is that for 2 equal objects, one 
considered truthy and the other considered falsey. In terms of clojure, if 
2 objects are equal they represents the same value, right? As I've 
mentioned earlier, '(1 2 3) and [1 2 3] is two different objects, but it's 
a single value - collection of numbers 1, 2 and 3, in this order. This is 
true for all built-in clojure types of data - equal things are the same 
thing. 'false' is a clojure built-in, so I'd expect that its behaviour is 
similar. 'false' is equal to (Boolean. false); it implies that they 
represents the same value. Thus, the same value can be considered as both 
truthy and falsey by clojure, which is like blowing my mind.

Of course it's possible to say that one of ='s arguments is a java class, 
so you can't rely on it, but it just doesn't feel right for me. It creates 
a sense that "I cannot trust my code on the most basic level", as topic 
starter sayed.

Hope I've made my point clear now.

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