Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 6
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Blanqui, Frédéric 2016. Termination of rewrite relations on λ-terms based on Girard's notion of reducibility. Theoretical Computer Science, Vol. 611, p. 50.

    Viso, Andrés Bonelli, Eduardo and Ayala-Rincón, Mauricio 2016. Type Soundness for Path Polymorphism. Electronic Notes in Theoretical Computer Science, Vol. 323, p. 235.

    Jay, Barry and Vergara, Jose 2013. 2013 International Symposium on Theoretical Aspects of Software Engineering. p. 233.

    Balabonski, Thibaut 2011. On the Implementation of Dynamic Patterns. Electronic Proceedings in Theoretical Computer Science, Vol. 49, p. 16.

    Jay, Barry and Given-Wilson, Thomas 2011. A combinatory account of internal structure. The Journal of Symbolic Logic, Vol. 76, Issue. 03, p. 807.

    Kesner, Delia Lombardi, Carlos and Ríos, Alejandro 2011. A standardisation proof for algebraic pattern calculi. Electronic Proceedings in Theoretical Computer Science, Vol. 49, p. 58.


First-class patterns

  • BARRY JAY (a1) and DELIA KESNER (a2)
  • DOI:
  • Published online: 01 March 2009

Pure pattern calculus supports pattern-matching functions in which patterns are first-class citizens that can be passed as parameters, evaluated and returned as results. This new expressive power supports two new forms of polymorphism. Path polymorphism allows recursive functions to traverse arbitrary data structures. Pattern polymorphism allows patterns to be treated as parameters which may be collected from various sources or generated from training data. A general framework for pattern calculi is developed. It supports a proof of confluence that is parameterised by the nature of the matching algorithm, suitable for the pure pattern calculus and all other known pattern calculi.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

H. Cirstea & C. Kirchner (2001) The rewriting calculus – Part I and II, Logic Journal of the IGPL, 9 (3), 427498.

R. De Nicola , G. L. Ferrari & R. Pugliese (1998) KLAIM: A kernel language for agents interaction and mobility. IEEE Trans. Software Engng 24 (5), 315330.

J. Forest & D. Kesner (2003) Expression reduction systems with patterns. In Proceedings of the 14th International Conference on Rewriting Techniques and Applications (RTA). Robert Nieuwenhuis (ed), Valencia, Spain, vol. 2706, Lecture Notes in Computer Science, Berlin: Springer, pp. 107122.

B. Jay (2009) Pattern Calculus: Computing with Functions and Structures. Berlin: Springer.

C. B. Jay (2004) The pattern calculus. ACM Trans. Prog. Lang. Sys. 26 (6), 911937.

J.-W. Klop , V. van Oostrom & R. de Vrijer (2008) Lambda calculus with patterns. Theoret. Comp. Sci. 398 (1–3), 1631.

L. C. Paulson (1994) Isabelle: A Generic Theorem-Prover, vol. 828, Lecture Notes in Computer Science. Springer.

E. Visser (2004) Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In Domain-Specific Program Generation: Revised Papers, vol. 3016, Lecture Notes in Computer Science, Berlin: Springer pp. 216238.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *