Next: Foreign function interface, Previous: Records, Up: Scheme reference [Contents][Index]
The (hoot match) module provides a match form that
supports a subset of what Guile’s (ice-9 match) can do. See
the Guile manual for more
detailed information.
Match object exp against the patterns in clause1 clause2 … in the order in which they appear. Return the value produced by the first matching clause. If no clause matches, throw a match error.
Each clause has the form (pattern body1 body2 ...).
The following patterns are supported:
identifierMatches anything and binds identifier.
_Matches anything.
()Matches the empty list.
#tMatches #t.
#fMatches #f.
'symbolMatches a symbol.
fixnumMatches a fixnum such as 42.
(not pattern)Matches if sub-pattern does not match.
(and pattern ...)Matches if every sub-pattern matches.
(or pattern ...)Matches if any sub-pattern matches.
(? predicate)Matches if (predicate exp) returns true.
(? predicate identifier)Matches if (predicate exp) returns true and binds
identifier.
(car-pattern . cdr-pattern)Matches a pair if the car/cdr match their respective sub-patterns.
#(pattern ...)Matches a vector of n elements if each element matches its respective sub-pattern.