summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/clj/clojure/core.clj10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 830c0192..848ee2d7 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -1845,6 +1845,16 @@
(instance? Short n)
(instance? Byte n)))
+(defn mod
+ "modulus of num and div."
+ [num div]
+ (cond
+ (or (not (integer? num)) (not (integer? div)))
+ (throw (IllegalArgumentException.
+ "mod requires two integers"))
+ (or (< num 0 div) (< div 0 num)) (+ (rem num div) div)
+ :else (rem num div)))
+
(defn ratio?
"Returns true if n is a Ratio"
[n] (instance? clojure.lang.Ratio n))