diff options
Diffstat (limited to 'module/util.scm')
-rw-r--r-- | module/util.scm | 9 |
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)) |