6.2.1
4 Contracts
This library is unstable; compatibility will not be maintained. See Unstable: May Change Without Warning for more information.
(require unstable/contract) | |
package: unstable-contract-lib |
procedure
(non-empty-string? x) → boolean?
x : any/c
Returns #t if x is a string and is not empty;
returns #f otherwise.
value
value
value
The subsequent bindings were added by Ryan Culpepper.
Produces a contract that, when applied to a value, first tests the
value with predicate; if predicate returns true, the
then-contract is applied; otherwise, the
else-contract is applied. The resulting contract is a flat
contract if both then-contract and else-contract are
flat contracts.
For example, the following contract enforces that if a value is a
procedure, it is a thunk; otherwise it can be any (non-procedure)
value:
(if/c procedure? (-> any) any/c)
Note that the following contract is not equivalent:
The last contract is the same as any/c because
or/c tries flat contracts before higher-order contracts.
value
A contract that describes the failure result arguments of procedures
such as hash-ref.
Equivalent to (if/c procedure? (-> any) any/c).
procedure
(rename-contract contract name) → contract?
contract : contract? name : any/c
Produces a contract that acts like contract but with the name
name.
The resulting contract is a flat contract if contract is a flat contract.
The subsequent bindings were added by Asumu Takikawa.
Creates a contract that acts like contract but will also
accept #f. Intended to describe situations where a failure
or default value may be used.
The subsequent bindings were added by Carl Eastlund <cce@racket-lang.org>.
value
This contract recognizes Racket truth values, i.e., any value, but with a more
informative name and description. Use it in negative positions for arguments
that accept arbitrary truth values that may not be booleans.
The subsequent bindings were added by Neil Toronto <neil.toronto@gmail.com>.
Identifies values that meet the contract elem-contract, lists of such values, lists of lists, and so on.
Examples: | ||||||||||||||||
|