diff --git a/pkgs/racket-test/tests/racket/curry.rkt b/pkgs/racket-test/tests/racket/curry.rkt index ebd10c5fd3..b515eec99a 100644 --- a/pkgs/racket-test/tests/racket/curry.rkt +++ b/pkgs/racket-test/tests/racket/curry.rkt @@ -68,3 +68,19 @@ (check-pred procedure? ((curry opt-kw+pos) #t)) (check-equal? (curry opt-kw+pos #:a #t #t) (list #t #t)) (check-equal? ((curry opt-kw+pos) #:a #t #t) (list #t #t)) + +(define zero-or-one + (case-lambda + [() 0] + [(a) 1])) + +(check-equal? (((curry zero-or-one))) 0) +(check-equal? ((curry zero-or-one) #t) 1) +(check-equal? (curry zero-or-one #t) 1) + +(define (zero-or-one/kw [x #f] #:y y) + (if x 1 0)) + +(check-equal? ((curry zero-or-one/kw #:y #f)) 0) +(check-equal? ((curry zero-or-one/kw #:y #f) #t) 1) +(check-equal? (curry zero-or-one/kw #:y #f #t) 1) diff --git a/racket/collects/racket/function.rkt b/racket/collects/racket/function.rkt index 3f0fabcd90..2cdf6ee37f 100644 --- a/racket/collects/racket/function.rkt +++ b/racket/collects/racket/function.rkt @@ -49,7 +49,7 @@ (cond [(eqv? mask 0) #f] [(negative? mask) +inf.0] - [else (integer-length (sub1 mask))])) + [else (sub1 (integer-length mask))])) ; arity-mask? exact-nonnegative-integer? -> arity-mask? ;