diff options
author | Rich Hickey <richhickey@gmail.com> | 2010-06-23 13:28:16 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2010-06-23 13:28:16 -0400 |
commit | df0e4b677bdb563abdc2aa03cb8e6376eceaf8d5 (patch) | |
tree | b1d6dcd0337a4235b8fd25663b753851b0fb5093 | |
parent | 0df995dc6d31a9f4d0fe199bc63c4abfac7c86b1 (diff) |
equiv-based =, equiv overloading for Util
-rw-r--r-- | src/clj/clojure/core.clj | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Util.java | 24 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index dc76c56e..e63a10d8 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -698,7 +698,7 @@ ([x y] (clojure.lang.Util/identical x y))) ;equiv-based -#_(defn = +(defn = "Equality. Returns true if x equals y, false if not. Same as Java x.equals(y) except it also works for nil, and compares numbers and collections in a type-independent manner. Clojure's immutable data @@ -717,7 +717,7 @@ false))) ;equals-based -(defn = +#_(defn = "Equality. Returns true if x equals y, false if not. Same as Java x.equals(y) except it also works for nil. Boxed numbers must have same type. Clojure's immutable data structures define equals() (and diff --git a/src/jvm/clojure/lang/Util.java b/src/jvm/clojure/lang/Util.java index a3306db6..4817dd56 100644 --- a/src/jvm/clojure/lang/Util.java +++ b/src/jvm/clojure/lang/Util.java @@ -59,6 +59,30 @@ static public boolean equals(double x, Object y){ static public boolean equals(Object x, double y){ return equals(x,(Double)y); } + +static public boolean equiv(long x, long y){ + return x == y; +} + +static public boolean equiv(double x, double y){ + return x == y; +} + +static public boolean equiv(long x, Object y){ + return equiv(Numbers.num(x),y); +} + +static public boolean equiv(Object x, long y){ + return equiv(x,Numbers.num(y)); +} + +static public boolean equiv(double x, Object y){ + return equiv((Double)x,y); +} + +static public boolean equiv(Object x, double y){ + return equiv(x,(Double)y); +} //*/ static public boolean identical(Object k1, Object k2){ |