Add reduce

Broken
diff --git a/lib/lisp/std/std.lisp b/lib/lisp/std/std.lisp
index d995f0e..56e8294 100644
--- a/lib/lisp/std/std.lisp
+++ b/lib/lisp/std/std.lisp
@@ -21,9 +21,8 @@
 
 
 
-;; Instead of a function this is a macro for a slight performance increase
-(defmacro not (val)
-  (list 'nilp val))
+(defun not (val)
+  (nilp val))
 
 ;; TODO: make tail recursive (for this `flet` would be nice)
 (defun length (list)
@@ -51,5 +50,9 @@
   (if (not stream)
     (read-stdin)))
 
-(print "Loading list functions")
-(print (load "list-functions.lisp"))
+(defun funcall (fun & list)
+  (print fun)
+  (print list)
+  (apply fun list))
+
+(load "list-functions.lisp")