Merge pull request #666 from katterjohn/delay-wna

Check the number of args to delay and delay-force
This commit is contained in:
Alex Shinn 2020-07-09 09:53:09 +09:00 committed by GitHub
commit f6eeb1c9f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -360,11 +360,15 @@
(define-syntax delay-force (define-syntax delay-force
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(if (null? (cdr expr)) (error "not enough args" expr))
(if (not (null? (cddr expr))) (error "too many args" expr))
`(,(rename 'promise) #f (,(rename 'lambda) () ,(cadr expr)))))) `(,(rename 'promise) #f (,(rename 'lambda) () ,(cadr expr))))))
(define-syntax delay (define-syntax delay
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(if (null? (cdr expr)) (error "not enough args" expr))
(if (not (null? (cddr expr))) (error "too many args" expr))
`(,(rename 'delay-force) (,(rename 'promise) #t ,(cadr expr)))))) `(,(rename 'delay-force) (,(rename 'promise) #t ,(cadr expr))))))
(define-syntax define-auxiliary-syntax (define-syntax define-auxiliary-syntax