aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/util.scm11
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))))