!reduce
authorDavid Vazquez <davazp@gmail.com>
Mon, 17 Dec 2012 00:14:58 +0000 (00:14 +0000)
committerDavid Vazquez <davazp@gmail.com>
Mon, 17 Dec 2012 00:14:58 +0000 (00:14 +0000)
test.lisp

index 2f4dd35..eff3ac4 100644 (file)
--- a/test.lisp
+++ b/test.lisp
@@ -12,6 +12,7 @@
        (%compile-defun ',name))
      (fsetq ,name (lambda ,args ,@body))))
 
+(defun + (x y)  (+ x y))
 (defun 1+ (x) (+ x 1))
 (defun 1- (x) (- x 1))
 
       (cons (funcall func (car list))
             (mapcar func (cdr list)))))
 
+(defun !reduce (func list initial)
+  (if (null list)
+      initial
+      (!reduce func
+               (cdr list)
+               (funcall func (car list) initial))))
+
 ;;; Tests
 
 (lambda (x y) x)