compiler/pattern
(match ptrn expr)
Defined at lib/compiler/pattern.lisp:107:2
Determine whether EXPR matches the provided pattern PTRN, returning
nil or a lookup of capture names to captured expressions.
(matcher ptrn)
Macro defined at lib/compiler/pattern.lisp:117:2
Create a matcher for the given pattern literal PTRN.
This is intended for views case expressions.
(matches? ptrn expr)
Defined at lib/compiler/pattern.lisp:113:2
Determine whether EXPR matches the provided pattern PTRN.
(pattern ptrn)
Macro defined at lib/compiler/pattern.lisp:44:2
Quote the provided pattern PTRN, suitable for matching with i
matches?.
This provides several “magic” symbol prefixes to aid matching:
-
?marks a metavar, and will be captured. If the second character is&, then this will capture zero or more values. -
%marks a genvar, which will result in a randomly generated symbol being used in substitutions. -
$marks a fullvar, where one can provide the full name to a variable. Use of this is discouraged and should only be used if you really need to detect hidden symbols.
Undocumented symbols
(match-always ptrn expr)Defined at lib/compiler/pattern.lisp:124:2