summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2010-06-23 13:28:16 -0400
committerRich Hickey <richhickey@gmail.com>2010-06-23 13:28:16 -0400
commitdf0e4b677bdb563abdc2aa03cb8e6376eceaf8d5 (patch)
treeb1d6dcd0337a4235b8fd25663b753851b0fb5093
parent0df995dc6d31a9f4d0fe199bc63c4abfac7c86b1 (diff)
equiv-based =, equiv overloading for Util
-rw-r--r--src/clj/clojure/core.clj4
-rw-r--r--src/jvm/clojure/lang/Util.java24
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){