aboutsummaryrefslogtreecommitdiff
path: root/module/util.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-03-20 01:25:00 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2020-03-20 01:25:00 +0100
commit0dc4387b332d8ad444b6481f9ee1502dddab452f (patch)
treef5f41968a2728c7c8cf9607cb2835e61f921b65d /module/util.scm
parentAdd datetime-{min,max}. (diff)
downloadcalp-0dc4387b332d8ad444b6481f9ee1502dddab452f.tar.gz
calp-0dc4387b332d8ad444b6481f9ee1502dddab452f.tar.xz
Add print-and-return macro.
Diffstat (limited to 'module/util.scm')
-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))))