Through version 1.2.0, Clojure used Java's Object.equals method for map
lookups. Java specifies Object.equals to be false for numbers of different
types.
Clojure 1.3.0-alpha* uses its own = function for map lookups specifically to
avoid this problem. The = function is true for numbers of different types
but the same value. Note that Java code dealing with Clojure maps using the
java.util.Map interface will still get the standard Java behavior using
Object.equals.
Clojure 1.3.0-alpha* also uses longs by default for all integer literals.
Clojure 1.3.0-master-SNAPSHOT
user=> (def m {1 10 2 20})
#'user/m
user=> (m 2)
20
user=> (m (long 2))
20
user=> (type 2)
java.lang.Long
Stuart Sierra
clojure.com
--
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