The pattern calculus

CB Jay - ACM Transactions on Programming Languages and …, 2004 - dl.acm.org
ACM Transactions on Programming Languages and Systems (TOPLAS), 2004dl.acm.org
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 …
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.
ACM Digital Library