aboutsummaryrefslogtreecommitdiff
path: root/module/util.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@hornquist.se>2020-01-30 22:51:45 +0100
committerHugo Hörnquist <hugo@hornquist.se>2020-01-30 22:51:45 +0100
commitf852c30bcef530d18a474ab6ab8350a3ef93d563 (patch)
tree00fc29a6ff1a8c842d0a526f04d4124977dd6e46 /module/util.scm
parentUpdate recurrence generate to new date obj. (diff)
downloadcalp-f852c30bcef530d18a474ab6ab8350a3ef93d563.tar.gz
calp-f852c30bcef530d18a474ab6ab8350a3ef93d563.tar.xz
Once again compiles.
Diffstat (limited to 'module/util.scm')
-rw-r--r--module/util.scm15
1 files changed, 13 insertions, 2 deletions
diff --git a/module/util.scm b/module/util.scm
index a2ab43c3..717c61d8 100644
--- a/module/util.scm
+++ b/module/util.scm
@@ -193,11 +193,22 @@
(define-public (swap f)
(lambda args (apply f (reverse args))))
+
+(define-syntax case*%
+ (syntax-rules (else)
+ [(_ _ else)
+ #t]
+ [(_ invalue (value ...))
+ (memv invalue (list value ...))]
+ #;
+ [(_ invalue target)
+ (eq? invalue target)]))
+
;; Like `case', but evals the case parameters
(define-syntax case*
(syntax-rules (else)
- [(_ invalue ((value ...) body ...) ...)
- (cond ((memv invalue (list value ...))
+ [(_ invalue (cases body ...) ...)
+ (cond ((case*% invalue cases)
body ...)
...)]))