Pattern Syntax
Pattern
pattern ::= 'None' | 'True' | 'False' | NUMBER | IDENTIFIER | STRING | variable | '(' [{pattern,}] ['*' variable] ')'
IDENTIFIER acts like a STRING here, meaning that it is taken as a literal value. All variables in patterns must be preceded by a $.
Pyke does not currently support complex NUMBERS (for no good reason -- email me if you need them).
Pattern Variable
Pattern variables are simply called variable in the syntax:
variable ::= '$'IDENTIFIER
The variable must not have a space between the $ and the IDENTIFIER.
Anonymous Variable
If the pattern variable IDENTIFIER begins with an underscore (_), the variable is an anonymous variable. It acts like a "don't care". Technically, this means that multiple uses of the same IDENTIFIER may stand for different values. The name of the IDENTIFIER after the underscore is ignored and may be used to document the use of the anonymous variable.
Rest Variable
The *variable at the end of a tuple pattern will match the rest of the tuple. Thus, variable is always bound to a (possibly empty) tuple.
The syntax is taken from rest parameter syntax in Python function definitions. The difference here is that the variable needs a $ on it.
You may use either a named variable or an anonymous variable here.