aboutsummaryrefslogtreecommitdiff
path: root/module/util.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/util.scm')
-rw-r--r--module/util.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/module/util.scm b/module/util.scm
index 97483222..2a995777 100644
--- a/module/util.scm
+++ b/module/util.scm
@@ -9,7 +9,8 @@
catch-multiple
quote?
tree-map let-lazy)
- #:replace (let* set! define-syntax))
+ #:replace (let* set! define-syntax
+ when unless))
((@ (guile) define-syntax) define-syntax
(syntax-rules ()
@@ -141,6 +142,14 @@
+(define-syntax-rule (when pred body ...)
+ (if pred (begin body ...) '()))
+
+(define-syntax-rule (unless pred body ...)
+ (if pred '() (begin body ...)))
+
+
+
;; Allow set to work on multiple values at once,
;; similar to Common Lisp's @var{setf}
;; @example