31 lines
1023 B
Racket
31 lines
1023 B
Racket
#lang s-exp "../../lang/wescheme.rkt"
|
|
|
|
"arity.rkt"
|
|
(check-expect (procedure-arity (lambda () (void))) 0)
|
|
(check-expect (procedure-arity (lambda (x) (void))) 1)
|
|
(check-expect (procedure-arity (lambda (x y . z) (void)))
|
|
(make-arity-at-least 2))
|
|
|
|
(check-expect (arity-at-least? (make-arity-at-least 0))
|
|
true)
|
|
|
|
(check-expect (arity-at-least? 'not-an-arity)
|
|
false)
|
|
|
|
(check-expect (arity-at-least-value
|
|
(make-arity-at-least 7))
|
|
7)
|
|
|
|
(define f
|
|
(case-lambda [(x y) (list x y)]
|
|
[(x y z) (list x y z)]))
|
|
(check-expect (procedure-arity-includes? f 2) true)
|
|
(check-expect (procedure-arity-includes? f 3) true)
|
|
(check-expect (procedure-arity-includes? f 4) false)
|
|
(check-expect (procedure-arity-includes? f 0) false)
|
|
|
|
(check-expect (procedure-arity-includes? (lambda (x) (* x x)) 1) true)
|
|
(check-expect (procedure-arity-includes? (lambda (x) (* x x)) 0) false)
|
|
(check-expect (procedure-arity-includes? (lambda args (void)) 0) true)
|
|
|
|
"arity.rkt end" |