6.2
18 Match
This library is unstable; compatibility will not be maintained. See Unstable: May Change Without Warning for more information.
(require unstable/match) | package: typed-racket-lib |
The subsequent bindings were added by Carl Eastlund <cce@racket-lang.org>.
syntax
(match? val-expr pat ...)
Returns #t if the result of val-expr matches any of
pat, and returns #f otherwise.
Examples: | |||||||||||||||
|
syntax
(as ([lhs-id rhs-expr] ...) pat ...)
As a match expander, binds each lhs-id as a pattern variable with the
result value of rhs-expr, and continues matching each subsequent
pat.
Example: | ||||
|
The subsequent bindings were added by Asumu Takikawa <asumu@racket-lang.org>.
syntax
(match*? (val-expr ...) (pat ...) ...)
Similar to match?, but uses match* and accepts
multiple val-expr and corresponding pat in each
clause to match on.
Examples: | |||||||||||||||
|
syntax
(object maybe-class field-clause ...)
maybe-class =
| class-expr field-clause = (field field-id maybe-pat) maybe-pat =
| pat
A match expander that checks if the matched value is an object
and contains the fields named by the field-ids. If
pats are provided, the value in each field is matched to
its corresponding pat. If a pat is not provided,
it defaults to the name of the field.
If class-expr is provided, the match expander will also check that the supplied object is an instance of the class that the given expression evaluates to.
Examples: | |||||||||||||||||||||||||
|