On Tue, Feb 10, 2009 at 8:55 PM, Timothy Pratley
<timothyprat...@gmail.com> wrote:
>
> In the code I posted the let evaluated rem before checking the
> arguments.

Thanks for doing all the hard work.  :-)

How about:

(defn mod42
 "Modulus of num and div. Truncates toward negative infinity."
 [num div]
 (if-not (and (integer? num) (integer? div))
   (throw (IllegalArgumentException. "mod requires two integers"))
   (let [m (rem num div)]
     (if (or (zero? m) (> (* num div) 0))
       m
       (+ m div)))))

--Chouser

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to