display | more...

A technique commonly employed by functional languages (such as CAML, Haskell, SML and Miranda), allowing complicated control decisions based on data structure to be expressed in a concise manner. Typically, pattern matching constructs have an "else" clause or a wildcard symbol, so that the default case can be matched. For example, a "sum of all integers in an integer list" function in OCAML, where the ``_'' wildcard is used instead of the empty list:

let rec sum_all lst =
    match lst with
        head :: tail -> head + sum_all tail
        | _ -> 0;;

In a text processing context, pattern matching usually refers to a form of regexping or globbing.