git » jacl.git » commit 3e03216

Make %DO a function

author Alan Dipert
2021-07-26 18:59:15 UTC
committer Alan Dipert
2021-07-26 18:59:15 UTC
parent 2ab8380ccdb5c817f2251f02f4641e5aeaec5296

Make %DO a function

boot.lisp +12 -12

diff --git a/boot.lisp b/boot.lisp
index 1b51785..3b0a823 100644
--- a/boot.lisp
+++ b/boot.lisp
@@ -489,7 +489,7 @@
   (%js "[...~{}].reduce((x, y) => Cons.append(x, y))"
        (%mapcar function list)))
 
-(defmacro %do (op-bind op-set step-forms &rest more)
+(defun %do (op-bind op-set step-forms more)
   (let* ((end-test-and-result-forms (car more))
          (end-test-form             (car end-test-and-result-forms))
          (result-forms              (cdr end-test-and-result-forms))
@@ -499,22 +499,22 @@
                                                (list (car step-form) (cadr step-form)))
                                              step-forms))
          (assignments               `(,op-set ,@(%mapcan (lambda (step-form)
-                                                            (when (caddr step-form)
-                                                              (list (car step-form) (caddr step-form))))
-                                                          step-forms))))
+                                                           (when (caddr step-form)
+                                                             (list (car step-form) (caddr step-form))))
+                                                         step-forms))))
     `(block nil
        (,op-bind ,bindings
-         (tagbody
-            ,begin#
-            (if ,end-test-form
-                (return (progn ,@result-forms)))
-            ,assignments
-            ,@body
-            (go ,begin#))))))
+                 (tagbody
+                    ,begin#
+                    (if ,end-test-form
+                        (return (progn ,@result-forms)))
+                    ,assignments
+                    ,@body
+                    (go ,begin#))))))
 
 (%export 'do*)
 (defmacro do* (step-forms &rest more)
-  `(%do let* setq ,step-forms ,@more))
+  (%do 'let* 'setq step-forms more))
 
 (%export 'psetq)
 (defmacro psetq (&rest pairs))