Move over some numeric functions from boot.lisp
authorOwen Rodley <Strigoides@gmail.com>
Sat, 18 May 2013 13:49:37 +0000 (01:49 +1200)
committerOwen Rodley <Strigoides@gmail.com>
Sun, 19 May 2013 23:06:26 +0000 (11:06 +1200)
Leave only the minimum required for booting

src/boot.lisp
src/numbers.lisp

index 4f22ec9..7605a29 100644 (file)
 (defun fboundp (x)
   (fboundp x))
 
 (defun fboundp (x)
   (fboundp x))
 
-;; Basic functions
-(defun = (x y) (= x y))
-(defun * (x y) (* x y))
-(defun / (x y) (/ x y))
-(defun 1+ (x) (+ x 1))
-(defun 1- (x) (- x 1))
-(defun zerop (x) (= x 0))
-
-(defun truncate (x &optional (y 1))
-  (floor (/ x y)))
-
 (defun eq (x y) (eq x y))
 (defun eql (x y) (eq x y))
 
 (defun not (x) (if x nil t))
 
 ;; Basic macros
 (defun eq (x y) (eq x y))
 (defun eql (x y) (eq x y))
 
 (defun not (x) (if x nil t))
 
 ;; Basic macros
-
 (defmacro incf (place &optional (delta 1))
   (multiple-value-bind (dummies vals newval setter getter)
       (get-setf-expansion place)
 (defmacro incf (place &optional (delta 1))
   (multiple-value-bind (dummies vals newval setter getter)
       (get-setf-expansion place)
 ;;; Go on growing the Lisp language in Ecmalisp, with more high level
 ;;; utilities as well as correct versions of other constructions.
 
 ;;; Go on growing the Lisp language in Ecmalisp, with more high level
 ;;; utilities as well as correct versions of other constructions.
 
-(defun + (&rest args)
-  (let ((r 0))
-    (dolist (x args r)
-      (incf r x))))
-
-(defun - (x &rest others)
-  (if (null others)
-      (- x)
-      (let ((r x))
-        (dolist (y others r)
-          (decf r y)))))
-
 (defun append-two (list1 list2)
   (if (null list1)
       list2
 (defun append-two (list1 list2)
   (if (null list1)
       list2
 (defun char< (x y)
   (< (char-code x) (char-code y)))
 
 (defun char< (x y)
   (< (char-code x) (char-code y)))
 
-(defun integerp (x)
-  (and (numberp x) (= (floor x) x)))
-
-(defun floatp (x)
-  (and (numberp x) (not (integerp x))))
-
-(defun plusp (x) (< 0 x))
-(defun minusp (x) (< x 0))
-
 (defun atom (x)
   (not (consp x)))
 
 (defun atom (x)
   (not (consp x)))
 
index 342c12d..8121b8e 100644 (file)
 
 ;;;; Various numeric functions and constants
 
 
 ;;;; Various numeric functions and constants
 
+;; Basic functions
+(defun = (x y) (= x y))
+(defun * (x y) (* x y))
+(defun / (x y) (/ x y))
+(defun 1+ (x) (+ x 1))
+(defun 1- (x) (- x 1))
+
+(defun + (&rest args)
+  (let ((r 0))
+    (dolist (x args r)
+      (incf r x))))
+
+(defun - (x &rest others)
+  (if (null others)
+      (- x)
+      (let ((r x))
+        (dolist (y others r)
+          (decf r y)))))
+
+(defun truncate (x &optional (y 1))
+  (floor (/ x y)))
+
+(defun integerp (x)
+  (and (numberp x) (= (floor x) x)))
+
+(defun floatp (x)
+  (and (numberp x) (not (integerp x))))
+
+(defun minusp (x) (< x 0))
+(defun zerop (x) (= x 0))
+(defun plusp (x) (< 0 x))
+
 ;; TODO: Use MACROLET when it exists
 (defmacro defcomparison (operator)
   `(defun ,operator (x &rest args)
 ;; TODO: Use MACROLET when it exists
 (defmacro defcomparison (operator)
   `(defun ,operator (x &rest args)