compatibility/compatibility-doc/mzlib/scribblings/match.scrbl
2014-12-02 09:43:08 -05:00

58 lines
1.8 KiB
Racket

#lang scribble/doc
@(require "common.rkt"
"match-grammar.rkt"
(for-label mzlib/match))
@(begin
(define-syntax-rule (bind id)
(begin
(require racket/match)
(define id (racket match))))
(bind racket-match))
@mzlib[#:mode title match]
@deprecated[@racketmodname[racket/match]]{}
The @racketmodname[mzlib/match] library provides a @racket[match] form
similar to that of @racketmodname[racket/match], but with an different
(older and less extensible) syntax of patterns.
@defform/subs[(match val-expr clause ...)
([clause [pat expr ...+]
[pat (=> id) expr ...+]])]{
See @racket-match from @racketmodname[racket/match] for a description
of matching. The grammar of @racket[pat] for this @racket[match] is as
follows:
@|match-grammar|}
@; ------------------------------------------------------------
@deftogether[(
@defform[(define/match (head args) match*-clause ...)]
@defform[(match-lambda clause ...)]
@defform[(match-lambda* clause ...)]
@defform[(match-let ([pat expr] ...) body ...+)]
@defform[(match-let* ([pat expr] ...) body ...+)]
@defform[(match-letrec ([pat expr] ...) body ...+)]
@defform[(match-define pat expr)]
)]{
Analogous to the combined forms from @racket[racket/match].}
@; ------------------------------------------------------------
@deftogether[(
@defform*[((define-match-expander id proc-expr)
(define-match-expander id proc-expr proc-expr)
(define-match-expander id proc-expr proc-expr proc-expr))]
@defparam[match-equality-test comp-proc (any/c any/c . -> . any)]
)]{
Analogous to the form and parameter from @racket[racket/match]. The
@racket[define-match-expander] form, however, supports an extra
@racket[proc-expr] as the middle one: an expander for use with
@racket[match] from @racketmodname[mzlib/match].}