21 Match
This library is unstable; compatibility will not be maintained. See Unstable: May Change Without Warning for more information.
(require unstable/match) |
The subsequent bindings were added by Carl Eastlund <cce@racket-lang.org>.
syntax
(match? val-expr pat ...)
Examples: | |||||||||||||||
|
syntax
(as ([lhs-id rhs-expr] ...) pat ...)
Example: | ||||
|
The subsequent bindings were added by Asumu Takikawa <asumu@racket-lang.org>.
syntax
(match*? (val-expr ...) (pat ...) ...)
Examples: | |||||||||||||||
|
syntax
(define/match (head args) match*-clause ...)
head = id | (head args) args = arg ... | arg ... . rest-id arg = arg-id | [arg-id default-expr] | keyword arg-id | keyword [arg-id default-expr] match*-clause = [(pat ...+) body ...+] | [(pat ...+) (=> id) body ...+]
The function header may contain optional or keyword arguments, or may be in curried form.
Examples: | |||||||||||||||||||||||||||||||
|
syntax
(object maybe-class field-clause ...)
maybe-class =
| class-expr field-clause = (field field-id maybe-pat) maybe-pat =
| pat
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: | |||||||||||||||||||||||||
|