| (require mzlib/match) | package: compatibility-lib | 
NOTE: This library is deprecated; use racket/match, instead.
The mzlib/match library provides a match form similar to that of racket/match, but with an different (older and less extensible) syntax of patterns.
syntax
(match val-expr clause ...)
clause = [pat expr ...+] | [pat (=> id) expr ...+] 
| pat | 
 | ::= | 
 | id | 
 | match anything, bind identifier | 
| 
 | 
 | | | 
 | _ | 
 | match anything | 
| 
 | 
 | | | 
 | literal | 
 | match literal | 
| 
 | 
 | | | 
 | 'datum | 
 | match equal? datum | 
| 
 | 
 | | | 
 | (lvp ...) | 
 | match sequence of lvps | 
| 
 | 
 | | | 
 | (lvp ... . pat) | 
 | match lvps consed onto a pat | 
| 
 | 
 | | | 
 | #(lvp ...) | 
 | match vector of pats | 
| 
 | 
 | | | 
 | #&pat | 
 | match boxed pat | 
| 
 | 
 | | | 
 | ($ struct-id pat ...) | 
 | match struct-id instance | 
| 
 | 
 | | | 
 | (and pat ...) | 
 | match when all pats match | 
| 
 | 
 | | | 
 | (or pat ...) | 
 | match when any pat match | 
| 
 | 
 | | | 
 | (not pat ...) | 
 | match when no pat match | 
| 
 | 
 | | | 
 | (= expr pat) | 
 | match (expr value) to pat | 
| 
 | 
 | | | 
 | (? pred-expr pat ...) | 
 | match if (expr value) and pats | 
| 
 | 
 | | | 
 | `qp | 
 | match quasipattern | 
| literal | 
 | ::= | 
 | #t | 
 | match true | 
| 
 | 
 | | | 
 | #f | 
 | match false | 
| 
 | 
 | | | 
 | string | 
 | match equal? string | 
| 
 | 
 | | | 
 | number | 
 | match equal? number | 
| 
 | 
 | | | 
 | character | 
 | match equal? character | 
| 
 | 
 | | | 
 | bytes | 
 | match equal? byte string | 
| 
 | 
 | | | 
 | keyword | 
 | match equal? keyword | 
| 
 | 
 | | | 
 | regexp | 
 | match equal? regexp literal | 
| 
 | 
 | | | 
 | pregexp | 
 | match equal? pregexp literal | 
| lvp | 
 | ::= | 
 | pat | 
 | greedily match pat instances | 
| 
 | 
 | | | 
 | pat | 
 | match pat | 
| ooo | 
 | ::= | 
 | ... | 
 | zero or more; ... is literal | 
| 
 | 
 | | | 
 | ___ | 
 | zero or more | 
| 
 | 
 | | | 
 | ..k | 
 | k or more | 
| 
 | 
 | | | 
 | __k | 
 | k or more | 
| qp | 
 | ::= | 
 | literal | 
 | match literal | 
| 
 | 
 | | | 
 | id | 
 | match equal? symbol | 
| 
 | 
 | | | 
 | (qp ...) | 
 | match sequences of qps | 
| 
 | 
 | | | 
 | (qp ... . qp) | 
 | match sequence of qps consed onto a qp | 
| 
 | 
 | | | 
 | (qp ... qp ooo) | 
 | match qps consed onto a repeated qp | 
| 
 | 
 | | | 
 | #(qp ...) | 
 | match vector of qps | 
| 
 | 
 | | | 
 | #&qp | 
 | match boxed qp | 
| 
 | 
 | | | 
 | ,pat | 
 | match pat | 
| 
 | 
 | | | 
 | ,@pat | 
 | match pat, spliced | 
syntax
(define/match (head args) match*-clause ...)
syntax
(match-lambda clause ...)
syntax
(match-lambda* clause ...)
syntax
(match-let ([pat expr] ...) body ...+)
syntax
(match-let* ([pat expr] ...) body ...+)
syntax
(match-letrec ([pat expr] ...) body ...+)
syntax
(match-define pat expr)
syntax
(define-match-expander id proc-expr)
(define-match-expander id proc-expr proc-expr) (define-match-expander id proc-expr proc-expr proc-expr) 
parameter
(match-equality-test) → (any/c any/c . -> . any)
(match-equality-test comp-proc) → void? comp-proc : (any/c any/c . -> . any)