Egison: Non-Linear Pattern-Matching against Non-Free Data Types
Satoshi Egi

TL;DR
Egison is a programming language that offers advanced pattern-matching capabilities for complex, non-free data types like sets and graphs, enabling concise and flexible data manipulation.
Contribution
It introduces novel pattern-matching features such as multiple variable occurrences, loop-patterns, and support for non-free data types, implemented in Haskell.
Findings
Supports pattern-matching on non-free data types like sets and graphs
Enables multiple results and variable occurrences in patterns
Demonstrates concise expression of complex data manipulations
Abstract
This paper introduces the Egison programming language whose feature is strong pattern-matching facility against not only algebraic data types but also non-free data types whose data have multiple ways of representation such as sets and graphs. Our language supports multiple occurrences of the same variables in a pattern, multiple results of pattern-matching, polymorphism of pattern-constructors and loop-patterns, patterns that contain "and-so-forth" whose repeat count can be changed by the parameter. This paper proposes the way to design expressions that have all these features and demonstrates how these features are useful to express programs concise. Egison has already implemented in Haskell.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Model-Driven Software Engineering Techniques
