aboutsummaryrefslogtreecommitdiff
path: root/module/util.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/util.scm')
-rw-r--r--module/util.scm9
1 files changed, 7 insertions, 2 deletions
diff --git a/module/util.scm b/module/util.scm
index 25be0389..cdc6026d 100644
--- a/module/util.scm
+++ b/module/util.scm
@@ -152,8 +152,13 @@
(set! rest ...)))))
;; Like set!, but applies a transformer on the already present value.
-(define-syntax-rule (mod! field transform-proc)
- (set! field (transform-proc field)))
+(define-syntax mod!
+ (syntax-rules ()
+ ((_ field proc)
+ (set! field (proc field)))
+ ((_ field transform-proc rest ...)
+ (begin (set! field (transform-proc field))
+ (mod! rest ...)))))
(define-public (concat lists)
(apply append lists))