diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-03-20 01:25:00 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-03-20 01:25:00 +0100 |
commit | 0dc4387b332d8ad444b6481f9ee1502dddab452f (patch) | |
tree | f5f41968a2728c7c8cf9607cb2835e61f921b65d /module | |
parent | Add datetime-{min,max}. (diff) | |
download | calp-0dc4387b332d8ad444b6481f9ee1502dddab452f.tar.gz calp-0dc4387b332d8ad444b6481f9ee1502dddab452f.tar.xz |
Add print-and-return macro.
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)))) |