▼ |  | Unstable

1 | Guidelines for developing unstable libraries
2 | Bytes
3 | Classes and Objects
4 | Contracts
5 | Definitions
6 | Dictionaries
7 | Directories
8 | Exceptions
9 | Filesystem
10 | Functions
11 | Lists
12 | Net
13 | Path
14 | PLane T Packages
15 | Ports
16 | Pretty-Printing
17 | Regular Expressions
18 | Requiring Modules
19 | Sandboxed Evaluation
20 | Scribble Documentation
21 | Sets
22 | S-Expression Diff
23 | Source Locations
24 | Strings
25 | Structs
26 | Syntax
27 | Planet Package Macros
28 | Text Representations
29 | Multiple Values
30 | XML and CSS
31 | Polymorphic Contracts
32 | Finding Mutated Variables
33 | Find
34 | Interface-Oriented Programming for Classes
35 | Sequences
36 | Hash Tables
37 | Match
38 | Generics
39 | Mark Parameters
40 | Debugging
41 | Contracts for macro subexpressions
42 | Contracts for struct type properties
43 | GUI libraries

On this page:

==
match?
as

Version: 5.0.2
top ← prev up next →

### 37`` Match

Sam Tobin-Hochstadt <samth@ccs.neu.edu>

( require unstable/match )

This library is unstable; compatibility will not be maintained. See Unstable for more information.

( == val comparator)
( == val)

A match expander which checks if the matched value is the same as val when compared by comparator. If comparator is not provided, it defaults to equal?.

Examples:

> ( match ( list 1 2 3)
[( == ( list 1 2 3)) 'yes]
[ _ 'no])

'yes

> ( match ( list 1 2 3)
[( == ( list 1 2 3) eq? ) 'yes]
[ _ 'no])

'no

> ( match ( list 1 2 3)
[( list 1 2 ( == 3 = )) 'yes]
[ _ 'no])

'yes

> > > The subsequent bindings were added by Carl Eastlund <cce@racket-lang.org>.

( match? val-expr pat ...)

Returns #t if the result of val-expr matches any of pat, and returns #f otherwise.

Examples:

> ( match? ( list 1 2 3)
( list a b c)
( vector x y z))

#t

> ( match? ( vector 1 2 3)
( list a b c)
( vector x y z))

#t

> ( match? ( + 1 2 3)
( list a b c)
( vector x y z))

#f

( 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:

> ( match ( list 1 2 3)
[( as ([a 0]) ( list b c d)) ( list a b c d)])

'(0 1 2 3)

top ← prev up next →