Pattern Matching

Pattern-matching balances description of data structures, given by patterns, and functionality, which binds variables in patterns. This breadth allows it to support most programming styles within a simple mechanism. Also, this approach supports two new forms of polymorphism.

Path polymorphism supports operations that need to traverse an arbitrary data structure, e.g. searching or querying. The heart of this approach is to support patterns able to match against any compound data structure.

Pattern polymorphism allows free variables in patterns, so that patterns may be assembled and evaluated dynamically.

Programming with the pattern calculus is the point of the language bondi .

Pattern Calculus: Computing with Functions and Structures

is a monograph on pattern calculus (Springer, August, 2009). Here is a talk with examples in bondi .

Publications on pattern calculus and its precursors include (in chronological order) :

Faculty of Engineering and Information Technology