In this paper we present a functional language supporting first-class rules and generic traversal. This is achieved by generalizing the pattern matching constructs of standard functional languages. The case construct that ties rules together and prevents their reuse, is replaced by separate, firstclass, pattern matching rules and a choice combinator that deals with pattern match failure. Generic traversal is achieved through application pattern matching in which a constructor application is generically divided into a prefix and a suffix, thus giving generic access to the subterms of a constructor term. Many highly generic term traversals can be defined in a type-safe way using this feature. These features support a direct and natu...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
This paper presents Modular Reifiable Matching (MRM): a new approach to two level types using a fixp...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...
Lacking support for generic traversal, functional programming languages suffer from a scalability pr...
There is a significant class of operations such as mapping that are common to all data structures. T...
A typed model of strategic rewriting is developed. An innovation is that generic traversals are cove...
AbstractA typed model of strategic term rewriting is developed. The key innovation is that generic t...
Rewriting is a formalism widely used in computer science and mathematical logic. The classical forma...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
The theory of programming with pattern-matching function definitions has been studied mainly in the ...
This paper presents matching logic, a first-order logic (FOL) variant forspecifying and reasoning ab...
AbstractThe theory of programming with pattern-matching function definitions has been studied mainly...
A generic functional program is one which is parameterised by datatype. By installing specific choic...
Stratego is a language for the specification of transformation rules and strategies for applying the...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
This paper presents Modular Reifiable Matching (MRM): a new approach to two level types using a fixp...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...
Lacking support for generic traversal, functional programming languages suffer from a scalability pr...
There is a significant class of operations such as mapping that are common to all data structures. T...
A typed model of strategic rewriting is developed. An innovation is that generic traversals are cove...
AbstractA typed model of strategic term rewriting is developed. The key innovation is that generic t...
Rewriting is a formalism widely used in computer science and mathematical logic. The classical forma...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
The theory of programming with pattern-matching function definitions has been studied mainly in the ...
This paper presents matching logic, a first-order logic (FOL) variant forspecifying and reasoning ab...
AbstractThe theory of programming with pattern-matching function definitions has been studied mainly...
A generic functional program is one which is parameterised by datatype. By installing specific choic...
Stratego is a language for the specification of transformation rules and strategies for applying the...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
This paper presents Modular Reifiable Matching (MRM): a new approach to two level types using a fixp...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...