Information and Computation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Pattern Matching as Cut Elimination
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Journal of Functional Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Expression reduction systems with patterns
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Adaptiveness in well-typed Java bytecode verification
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
A Framework for Defining Logical Frameworks
Electronic Notes in Theoretical Computer Science (ENTCS)
Structuring Operational Semantics: Simplification and Computation
Electronic Notes in Theoretical Computer Science (ENTCS)
From Functional Programs to Interaction Nets via the Rewriting Calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Theoretical Computer Science
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
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
Recursive Functions with Pattern Matching in Interaction Nets
Electronic Notes in Theoretical Computer Science (ENTCS)
The rewriting calculus as a combinatory reduction system
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
Confluence of pattern-based calculi
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
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
Matching modulo superdevelopments application to second-order matching
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Continuation Models for the Lambda Calculus With Constructors
Electronic Notes in Theoretical Computer Science (ENTCS)
Generalised name abstraction for nominal sets
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
The pure pattern calculus generalises the pure lambda-calculus by basing computation on pattern-matching instead of beta-reduction. The simplicity and power of the calculus derive from allowing any term to be a pattern. As well as supporting a uniform approach to functions, it supports a uniform approach to data structures which underpins two new forms of polymorphism. Path polymorphism supports searches or queries along all paths through an arbitrary data structure. Pattern polymorphism supports the dynamic creation and evaluation of patterns, so that queries can be customised in reaction to new information about the structures to be encountered. In combination, these features provide a natural account of tasks such as programming with XML paths. As the variables used in matching can now be eliminated by reduction it is necessary to separate them from the binding variables used to control scope. Then standard techniques suffice to ensure that reduction progresses and to establish confluence of reduction.