Describe match
scoping behavior more precisely.
This commit is contained in:
parent
33d653113d
commit
2ccd4b1a95
|
@ -22,9 +22,11 @@ on regular-expression matching on strings, bytes, and streams.
|
||||||
|
|
||||||
Finds the first @racket[pat] that matches the result of
|
Finds the first @racket[pat] that matches the result of
|
||||||
@racket[val-expr], and evaluates the corresponding @racket[body]s with
|
@racket[val-expr], and evaluates the corresponding @racket[body]s with
|
||||||
bindings introduced by @racket[pat] (if any). The last @racket[body]
|
bindings introduced by @racket[pat] (if any). Bindings introduced by
|
||||||
|
@racket[pat] are not available in other parts of @racket[pat].
|
||||||
|
The last @racket[body]
|
||||||
in the matching clause is evaluated in tail position with respect to
|
in the matching clause is evaluated in tail position with respect to
|
||||||
the @racket[match] expression.
|
the @racket[match] expression.
|
||||||
|
|
||||||
To find a match, the @racket[clause]s are tried in order. If no
|
To find a match, the @racket[clause]s are tried in order. If no
|
||||||
@racket[clause] matches, then the @exnraise[exn:misc:match?].
|
@racket[clause] matches, then the @exnraise[exn:misc:match?].
|
||||||
|
@ -58,12 +60,13 @@ In more detail, patterns match as follows:
|
||||||
@racketidfont{...}, @racketidfont{.._},
|
@racketidfont{...}, @racketidfont{.._},
|
||||||
@racketidfont{..}@racket[_k], and
|
@racketidfont{..}@racket[_k], and
|
||||||
@racketidfont{..}@racket[_k] for non-negative integers
|
@racketidfont{..}@racket[_k] for non-negative integers
|
||||||
@racket[_k]) or @racket[(var _id)] --- matches anything, and binds @racket[id] to the
|
@racket[_k]) or @racket[(var _id)] --- matches anything, and binds @racket[_id] to the
|
||||||
matching values. If an @racket[_id] is used multiple times
|
matching values. If an @racket[_id] is used multiple times
|
||||||
within a pattern, the corresponding matches must be the same
|
within a pattern, the corresponding matches must be the same
|
||||||
according to @racket[(match-equality-test)], except that
|
according to @racket[(match-equality-test)], except that
|
||||||
instances of an @racket[_id] in different @racketidfont{or} and
|
instances of an @racket[_id] in different @racketidfont{or} and
|
||||||
@racketidfont{not} sub-patterns are independent.
|
@racketidfont{not} sub-patterns are independent. The binding for @racket[_id] is
|
||||||
|
not available in other parts of the same pattern.
|
||||||
|
|
||||||
@examples[
|
@examples[
|
||||||
#:eval match-eval
|
#:eval match-eval
|
||||||
|
|
Loading…
Reference in New Issue
Block a user