Introduction to combinators and &lgr;-calculus
Introduction to combinators and &lgr;-calculus
Proofs and types
Category theory for computing science
Category theory for computing science
Commentary on standard ML
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Information and Computation
ESOP '94 Selected papers of ESOP '94, the 5th European symposium on Programming
ACM Computing Surveys (CSUR)
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
A new approach to generic functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Research Directions in Parallel Functional Programming
Research Directions in Parallel Functional Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Shapely Types and Shape Polymorphism
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
A Weak Calculus with Explicit Operators for Pattern Matching and Substitution
RTA '02 Proceedings of the 13th International Conference on Rewriting Techniques and Applications
MPC '98 Proceedings of the Mathematics of Program Construction
Journal of Functional Programming
Distinguishing data structures and functions: the constructor calculus and functorial types
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Expression reduction systems with patterns
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Programming with heterogeneous structures: manipulating XML data using bondi
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
A relational account of objects
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Adaptiveness in well-typed Java bytecode verification
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Theoretical Computer Science
The Computability Path Ordering: The End of a Quest
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
A Polymorphic Type System for the Lambda-Calculus with Constructors
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
The λ-calculus with constructors: Syntax, confluence and separation
Journal of Functional Programming
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Optimality for dynamic patterns
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Typed self-interpretation by pattern matching
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A lambda-calculus with constructors
RTA'06 Proceedings of the 17th international conference on Term Rewriting and Applications
Expression reduction systems and extensions: an overview
Processes, Terms and Cycles
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Multi-polymorphic programming in bondi
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Science of Computer Programming
Hi-index | 0.00 |
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.