Unless/when don't have alternate clause

This commit is contained in:
Arthur Maciel 2021-01-22 22:25:29 -03:00
parent 35f0c486cd
commit 1d1cd8d61f

View file

@ -483,15 +483,13 @@
(if (null? (cdr exp)) (error/loc "empty when" exp)) (if (null? (cdr exp)) (error/loc "empty when" exp))
(if (null? (cddr exp)) (error/loc "no when body" exp)) (if (null? (cddr exp)) (error/loc "no when body" exp))
`(if ,(cadr exp) `(if ,(cadr exp)
((lambda () ,@(cddr exp))) ((lambda () ,@(cddr exp)))))))
#f))))
(define-syntax unless (define-syntax unless
(er-macro-transformer (er-macro-transformer
(lambda (exp rename compare) (lambda (exp rename compare)
(if (null? (cdr exp)) (error/loc "empty unless" exp)) (if (null? (cdr exp)) (error/loc "empty unless" exp))
(if (null? (cddr exp)) (error/loc "no unless body" exp)) (if (null? (cddr exp)) (error/loc "no unless body" exp))
`(if ,(cadr exp) `(if (not ,(cadr exp))
#f
((lambda () ,@(cddr exp))))))) ((lambda () ,@(cddr exp)))))))
(define-syntax do (define-syntax do
(er-macro-transformer (er-macro-transformer