Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

The Ultimate Conditional Syntax

View through CrossRef
Functional programming languages typically support expressive pattern-matching syntax allowing programmers to write concise and type-safe code, especially appropriate for manipulating algebraic data types. Many features have been proposed to enhance the expressiveness of stock pattern-matching syntax, such as pattern bindings, pattern alternatives (a.k.a. disjunction), pattern conjunction, view patterns, pattern guards, pattern synonyms, active patterns, ‘if-let’ patterns, multi-way if-expressions, etc. In this paper, we propose a new pattern-matching syntax that is both more expressive and (we argue) simpler and more readable than previous alternatives. Our syntax supports parallel and nested matches interleaved with computations and intermediate bindings. This is achieved through a form of nested multi-way if-expressions with a condition-splitting mechanism to factor common conditional prefixes as well as a binding technique we call conditional pattern flowing . We motivate this new syntax with many examples in the setting of MLscript, a new ML-family programming language. We describe a straightforward desugaring pass from our rich source syntax into a minimal core syntax that only supports flat patterns and has an intuitive small-step semantics. We then provide a translation from the core syntax into a normalized syntax without backtracking, which is more amenable to coverage checking and compilation, and formally prove that our translation is semantics-preserving. We view this work as a step towards rethinking pattern matching to make it more powerful and natural to use. Our syntax can easily be integrated, in part or in whole, into existing as well as future programming language designs.
Title: The Ultimate Conditional Syntax
Description:
Functional programming languages typically support expressive pattern-matching syntax allowing programmers to write concise and type-safe code, especially appropriate for manipulating algebraic data types.
Many features have been proposed to enhance the expressiveness of stock pattern-matching syntax, such as pattern bindings, pattern alternatives (a.
k.
a.
disjunction), pattern conjunction, view patterns, pattern guards, pattern synonyms, active patterns, ‘if-let’ patterns, multi-way if-expressions, etc.
In this paper, we propose a new pattern-matching syntax that is both more expressive and (we argue) simpler and more readable than previous alternatives.
Our syntax supports parallel and nested matches interleaved with computations and intermediate bindings.
This is achieved through a form of nested multi-way if-expressions with a condition-splitting mechanism to factor common conditional prefixes as well as a binding technique we call conditional pattern flowing .
We motivate this new syntax with many examples in the setting of MLscript, a new ML-family programming language.
We describe a straightforward desugaring pass from our rich source syntax into a minimal core syntax that only supports flat patterns and has an intuitive small-step semantics.
We then provide a translation from the core syntax into a normalized syntax without backtracking, which is more amenable to coverage checking and compilation, and formally prove that our translation is semantics-preserving.
We view this work as a step towards rethinking pattern matching to make it more powerful and natural to use.
Our syntax can easily be integrated, in part or in whole, into existing as well as future programming language designs.

Related Results

A quantitative comparison of two methods for higher-order EEG microstate syntax analysis
A quantitative comparison of two methods for higher-order EEG microstate syntax analysis
Entropy rate (ER) and sample entropy (SE) are two metrics that have been used to quantify the syntactic complexity of electroencephalography (EEG) microstate sequences. We here pre...
A Quantitative Comparison of Two Methods for Higher-Order EEG Microstate Syntax Analysis
A Quantitative Comparison of Two Methods for Higher-Order EEG Microstate Syntax Analysis
Abstract Entropy rate (ER) and sample entropy (SE) are two metrics that have been used to quantify the syntactic complexity of electroencephalography (EEG) micros...
Deep-diffeomorphic networks for conditional brain templates
Deep-diffeomorphic networks for conditional brain templates
Abstract Deformable brain templates are an important tool in many neuroimaging analyses. Conditional templates (e.g., age-specific templates) hav...
Prognostic value of SYNTAX score and SYNTAX score II in an ‘all-comers’ population treated with angoplasty
Prognostic value of SYNTAX score and SYNTAX score II in an ‘all-comers’ population treated with angoplasty
Objectives The SYNTAX score and SYNTAX score II have a high predictive capacity for adverse cardiovascular events. We aimed to demonstrate that both scores were good pr...
Conditional Constructions in Yemsa
Conditional Constructions in Yemsa
Introduction. The main objective of this study is to produce a comprehensive description of Yemsa conditional constructions. The existing studies do not describe conditional clause...
The utility of SYNTAX score predictability by electrocardiogram parameters in patients with unstable angina
The utility of SYNTAX score predictability by electrocardiogram parameters in patients with unstable angina
Abstract Background SYNTAX score is one of the risk assessment systems to predict cardiac events in acute coronary syndrome patients. Despite the la...
NON-ST ELEVATION MYOCARDIAL INFARCTION: CORRELATION OF RED BLOOD CELL DISTRIBUTION WIDTH WITH SYNTAX SCORE
NON-ST ELEVATION MYOCARDIAL INFARCTION: CORRELATION OF RED BLOOD CELL DISTRIBUTION WIDTH WITH SYNTAX SCORE
Objective: To determine the correlation between mean RDW values and mean SYNTAX scores in patients of non ST elevation myocardial infarction. Methodology: This descriptive study wa...

Back to Top