The specification and derivation of substitution for the de Bruijn representation of - terms is used to illustrate programming with a function-sequence monad. The resulting program is improved by interactive program transformation methods into an efficient implementation that uses primitive machine arithmetic. These transformations illustrate new techniques that assist the discovery of the arithmetic structure of the solution. Introduction Substitution is one of many problems in computer science that, once understood in one context, is understood in all contexts. Why, then, must a different substitution function be written for every abstract syntax implemented? This paper shows how to define substitution once and use the monadic structure...
We will present three paradigms for non-classical substitution. Firstly, we have the classical subst...
Monads have become a powerful tool for structuring effectful computations in functional program-ming...
AbstractThe λσ-calculus is a concrete λ-calculus of explicit substitutions, designed for reasoning a...
. The specification and derivation of substitution for the de Bruijn representation of -terms is use...
AbstractThe specification and derivation of substitution for the de Bruijn representation of λ-terms...
Proving properties about effectful programs is hard. New application-specific abstractions based on ...
AbstractThe structure of monadic functional programs allows the integration of many different featur...
This paper starts by setting the ground for a lambda calculus notation that strongly mirrors the two...
We use the theorem prover Isabelle to formalise and machine-check results of the theory of generalis...
This paper starts by setting the ground for a lambda calculus notation that strongly mirrors the two...
The structure of monadic functional programs allows the integration of many different features by ju...
The goal of this article is to give an algebraic characterisation of the ab-stract syntax of functio...
In functional programming, a popular approach to building recursive descent parsers is to model pars...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
We will present three paradigms for non-classical substitution. Firstly, we have the classical subst...
Monads have become a powerful tool for structuring effectful computations in functional program-ming...
AbstractThe λσ-calculus is a concrete λ-calculus of explicit substitutions, designed for reasoning a...
. The specification and derivation of substitution for the de Bruijn representation of -terms is use...
AbstractThe specification and derivation of substitution for the de Bruijn representation of λ-terms...
Proving properties about effectful programs is hard. New application-specific abstractions based on ...
AbstractThe structure of monadic functional programs allows the integration of many different featur...
This paper starts by setting the ground for a lambda calculus notation that strongly mirrors the two...
We use the theorem prover Isabelle to formalise and machine-check results of the theory of generalis...
This paper starts by setting the ground for a lambda calculus notation that strongly mirrors the two...
The structure of monadic functional programs allows the integration of many different features by ju...
The goal of this article is to give an algebraic characterisation of the ab-stract syntax of functio...
In functional programming, a popular approach to building recursive descent parsers is to model pars...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
We will present three paradigms for non-classical substitution. Firstly, we have the classical subst...
Monads have become a powerful tool for structuring effectful computations in functional program-ming...
AbstractThe λσ-calculus is a concrete λ-calculus of explicit substitutions, designed for reasoning a...