From 7282faabfa52a0ef23351d4478b154f92d0815d6 Mon Sep 17 00:00:00 2001 From: Avril Date: Thu, 23 Jan 2020 02:33:02 +0000 Subject: [PATCH] progex --- flan-utils.lisp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/flan-utils.lisp b/flan-utils.lisp index 2ed4ee1..3fe1dd0 100644 --- a/flan-utils.lisp +++ b/flan-utils.lisp @@ -48,7 +48,8 @@ (let ((errnm (gensym))) `(let ((,errnm (handler-case (cons ,try nil) (t (e) - (cons (progn ,@catch) e))))) + (let ((e e)) + (cons (progn ,@catch) e)))))) (if (cdr ,errnm) (values (car ,errnm) (cdr ,errnm)) (values (car ,errnm) nil))))) @@ -263,6 +264,13 @@ ;; --- progressive evals +(defmacro progex (funcs expr) + "run funcs on expr, return specified" + (let ((name (gensym))) + `(let ((,name ,expr)) + (mapcar #'(lambda (x) (funcall x ,name)) ,funcs) + ,name))) + (defmacro progen (&rest things) "mapn eval things" `(mapn #'eval '(,@things)))