author | Alan Dipert
<alan@dipert.org> 2021-07-26 18:59:15 UTC |
committer | Alan Dipert
<alan@dipert.org> 2021-07-26 18:59:15 UTC |
parent | 2ab8380ccdb5c817f2251f02f4641e5aeaec5296 |
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))