Merge upstream.
authorKen Harris <kengruven@gmail.com>
Mon, 17 Jun 2013 22:29:55 +0000 (15:29 -0700)
committerKen Harris <kengruven@gmail.com>
Mon, 17 Jun 2013 22:29:55 +0000 (15:29 -0700)
1  2 
src/boot.lisp
src/numbers.lisp

diff --cc src/boot.lisp
Simple merge
  (defun zerop (x) (= x 0))
  (defun plusp (x) (< 0 x))
  
 +(defun signum (x)
 +  (if (zerop x) x (/ x (abs x))))
 +
- ;; TODO: Use MACROLET when it exists
- (defmacro defcomparison (operator)
-   `(defun ,operator (x &rest args)
-      (dolist (y args) 
-        (if (,operator x y)
-          (setq x    (car args))
-          (return-from ,operator nil)))
-      t))
- (defcomparison >)
- (defcomparison >=)
- (defcomparison =) 
- (defcomparison <)
- (defcomparison <=)
- (defcomparison /=)
+ (macrolet ((def (operator)
+              `(defun ,operator (x &rest args)
+                 (dolist (y args) 
+                   (if (,operator x y)
+                       (setq x    (car args))
+                       (return-from ,operator nil)))
+                 t)))
+   (def >)
+   (def >=)
+   (def =) 
+   (def <)
+   (def <=)
+   (def /=))
  
  (defconstant pi 3.141592653589793)