1 Exception utilities
2 Number utilities
3 String utilities
4 Bytes utilities
5 Symbol utilities
6 List utilities
7 PLT 4x hash utilities
8 PLT 3x hash utilities
9 Contract utilities
10 File and path utilities
11 Parameter utilities
12 Syntax utilities
13 SRFI19 time utilities
14 Scribble utilities
15 Generators
16 Generators (short names)
17 Pipelines
18 Write-through cache
19 Yieldable procedures
20 Debugging tools
21 Profiling tools
22 Logging tools
On this page:
arity/ c


9 Contract utilities

 (require (planet untyped/unlib/contract))

Utilities for use with the PLT contract library.

(arity/c arity)  flat-contact?

  arity : natural?

Returns a flat contract that requires the input to be procedure that accepts the specified number of (non-keyword) arguments. The procedure may, in addition, accept more and/or fewer arguments and any number of keyword arguments.


  > (define c (arity/c 2))

  > (contract-first-order-passes? c (lambda (a b) (void)))


  > (contract-first-order-passes? c (lambda (a b c) (void)))


  > (contract-first-order-passes? c (lambda (a [b #f]) (void)))


  > (contract-first-order-passes? c (lambda (a b #:c c) (void)))


  > (contract-first-order-passes? c (lambda (a #:b b) (void)))