diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/util.scm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/module/util.scm b/module/util.scm index 717c61d8..e8a0cc55 100644 --- a/module/util.scm +++ b/module/util.scm @@ -16,6 +16,7 @@ tree-map let-lazy let-env case* define-many and=>> + print-and-return ) #:replace (let* set! define-syntax when unless if)) @@ -190,6 +191,16 @@ +(define-macro (print-and-return expr) + (let ((str (gensym "str")) + (result (gensym "result"))) + `(let* ((,result ,expr) + (,str (format #f "~a [~a]~%" ,result (quote ,expr)))) + (display ,str (current-error-port)) + ,result))) + + + (define-public (swap f) (lambda args (apply f (reverse args)))) |