From 0dc4387b332d8ad444b6481f9ee1502dddab452f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 20 Mar 2020 01:25:00 +0100 Subject: Add print-and-return macro. --- module/util.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'module/util.scm') 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)))) -- cgit v1.2.3