Fix if-let, add when-let
This commit is contained in:
19
d-.scm
19
d-.scm
@@ -7,6 +7,7 @@
|
||||
as~>
|
||||
if-not
|
||||
if-let
|
||||
when-let
|
||||
for
|
||||
partial
|
||||
argmin
|
||||
@@ -39,14 +40,20 @@
|
||||
(let [(as v)]
|
||||
(as~> as (fn args ...) more ...))]))
|
||||
|
||||
(define-syntax-rule (if-not pred body ...)
|
||||
(if (not pred) body ...))
|
||||
(define-syntax-rule (if-not pred true-arm false-arm)
|
||||
(if (not pred) true-arm false-arm))
|
||||
|
||||
(define-syntax-rule (if-let ([ident test]) expr ...)
|
||||
(define-syntax-rule (if-let ([ident test]) true-arm false-arm)
|
||||
(let ([t test])
|
||||
(if t
|
||||
(let ([ident t])
|
||||
true-arm)
|
||||
false-arm)))
|
||||
|
||||
(define-syntax-rule (when-let ([ident test]) expr ...)
|
||||
(let ([ident test])
|
||||
(if ident
|
||||
(begin expr ...)
|
||||
#f)))
|
||||
(when ident
|
||||
expr ...)))
|
||||
|
||||
(define-syntax for
|
||||
(syntax-rules ()
|
||||
|
||||
Reference in New Issue
Block a user