The pattern calculus
- 1 November 2004
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 26 (6) , 911-937
- https://doi.org/10.1145/1034774.1034775
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.Keywords
This publication has 12 references indexed in Scilit:
- Polytypic values possess polykinded typesScience of Computer Programming, 2002
- Distinguishing Data Structures and Functions: The Constructor Calculus and Functorial TypesPublished by Springer Nature ,2001
- Research Directions in Parallel Functional ProgrammingPublished by Springer Nature ,1999
- Functorial MLJournal of Functional Programming, 1998
- Shape in computingACM Computing Surveys, 1996
- A Typed Pattern CalculusInformation and Computation, 1996
- A semantics for shapeScience of Computer Programming, 1995
- Dynamic typing in polymorphic languagesJournal of Functional Programming, 1995
- Type inference with polymorphic recursionACM Transactions on Programming Languages and Systems, 1993
- Functional programming with bananas, lenses, envelopes and barbed wirePublished by Springer Nature ,1991