Refactoring pattern matching

Bibliographic Information

Published
2013-11
Resource Type
journal article
Rights Information
  • https://www.elsevier.com/tdm/userlicense/1.0/
  • https://www.elsevier.com/open-access/userlicense/1.0/
DOI
  • 10.1016/j.scico.2012.07.014
Publisher
Elsevier BV

Search this article

Description

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.

Journal

Citations (7)*help

See more

References(56)*help

See more

Related Projects

See more

Report a problem

Back to top