1. A function is defined to take arguments of a particular type, form or value. When applying the function to its actual arguments it is necessary to match the type, form or value of the actual arguments against the formal arguments in some definition. For example, the function
length [] = 0 length (x:xs) = 1 + length xs
uses pattern matching in its argument to distinguish a null list from a non-null one.
There are well known algorithm for translating pattern matching into conditional expressions such as "if" or "case". E.g. the above function could be transformed to
length l = case l of [] -> 0 x:xs -> 1 : length xs
Pattern matching is usually performed in textual order though there are languages which match more specific patterns before less specific ones.
2. Descriptive of a type of language or utility such as awk or Perl which is suited to searching for strings or patterns in input data, usually using some kind of regular expression .
(1994-11-28)