The pattern calculus
Author CBJ
Abstract
There is a significant class of operations such as mapping that are
common to all data structures. The goal of generic programming is to
support these operations on arbitrary data types without having to
recode for each new type. The pattern calculus and combinatory type
system reach this goal by representing each data structure as a
combination of names and a finite set of constructors. These can be
used to define generic functions by pattern-matching programs in which
each pattern has a different type. Evaluation is
type-free. Polymorphism is captured by quantifying over type variables
that represent unknown structures. A practical type inference
algorithm is provided.
|