- (match exp (pat body …) …)syntax
The basic form of pattern matching expression, where exp is an expression, pat is a pattern, and body is one or more expressions (like the body of a lambda-expression). The match form matches its first subexpression against a sequence of patterns, and branches to the body corresponding to the first pattern successfully matched.
For example, the following code defines the usual map function:
(define map (lambda (f l) (match l [() '()] [(x . y) (cons (f x) (map f y))] )))
The first pattern () matches the empty list. The second pattern (x . y) matches a pair, binding x to the first component of the pair and y to the second component of the pair.