Skip to main navigation Skip to search Skip to main content

Refactoring pattern matching

Meng Wang, Jeremy Gibbons, Kazutaka Matsuda, Zhenjiang Hu

    Research output: Contribution to journalArticle (Academic Journal)peer-review

    17 Citations (Scopus)
    6 Downloads (Pure)

    Abstract

    Defining functions by pattern matching over the arguments is advantageous for understanding and reasoning, but it tends to expose the implementation of a datatype. Significant effort has been invested in tackling this loss of modularity; however, decoupling patterns from concrete representations while maintaining soundness of reasoning has been a challenge. Inspired by the development of invertible programming, we propose an approach to program refactoring based on a right-invertible language rinv—every function has a right (or pre-) inverse. We show how this new design is able to permit a smooth incremental transition from programs with algebraic datatypes and pattern matching, to ones with proper encapsulation, while maintaining simple and sound reasoning.

    Original languageEnglish
    JournalScience of Computer Programming
    Volume78
    Issue number11
    DOIs
    Publication statusPublished - 2012

    Research Groups and Themes

    • Programming Languages

    Keywords

    • Functional programming
    • Refactoring
    • Pattern matching
    • Invertible programming
    • Abstract datatypes
    • Fusion

    Fingerprint

    Dive into the research topics of 'Refactoring pattern matching'. Together they form a unique fingerprint.

    Cite this