One of the appeals of pure functional programming is that it is so amenable to equational reasoning. One of the problems of pure functional programming is that it rules out computational effects. Moggi and Wadler showed how to get round this problem by using monads to encapsulate the effects, leading in essence to a phase distinction - a pure functional evaluation yielding an impure imperative computation. Still, it has not been clear how to reconcile that phase distinction with the continuing appeal of functional programming; does the impure imperative part become inaccessible to equational reasoning? We think not; and to back that up, we present a simple axiomatic approach to reasoning about programs with computational effects. Copyright ...
The main strength of purely functional languages like Haskell is that they make reasoning about prog...
We model notions of computation using algebraic operations and equations. We show that these generat...
In mathematics the application of a function f to an argument x always yields the same result y = f(...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
Functional programming is particularly well suited for equational reasoning – referential trans-pare...
Functional programs are merely equations; they may be manipulated by straightforward equational reas...
Equality plays an important role in our life, and we practise equational reasoning everyday. We can ...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
The combination of probabilistic and nondeterministic choice in program calculi is a notoriously tri...
Functional programs are particularly well suited to formal manipulation by equational reasoning. In ...
An \em equational system\/ is a set of equations. Often we are interested in knowing if an equation ...
An equational approach to the synthesis of functional and logic program is taken. Typically, the syn...
We consider the following problem in proving equations in models of functional languages: given a ca...
In modern functional logic languages like Curry or Toy, programs are possibly non-confluent and non-...
Abstract. We model notions of computation using algebraic operations and equations. We show that the...
The main strength of purely functional languages like Haskell is that they make reasoning about prog...
We model notions of computation using algebraic operations and equations. We show that these generat...
In mathematics the application of a function f to an argument x always yields the same result y = f(...
One of the appeals of pure functional programming is that it is so amenable to equational reasoning....
Functional programming is particularly well suited for equational reasoning – referential trans-pare...
Functional programs are merely equations; they may be manipulated by straightforward equational reas...
Equality plays an important role in our life, and we practise equational reasoning everyday. We can ...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
The combination of probabilistic and nondeterministic choice in program calculi is a notoriously tri...
Functional programs are particularly well suited to formal manipulation by equational reasoning. In ...
An \em equational system\/ is a set of equations. Often we are interested in knowing if an equation ...
An equational approach to the synthesis of functional and logic program is taken. Typically, the syn...
We consider the following problem in proving equations in models of functional languages: given a ca...
In modern functional logic languages like Curry or Toy, programs are possibly non-confluent and non-...
Abstract. We model notions of computation using algebraic operations and equations. We show that the...
The main strength of purely functional languages like Haskell is that they make reasoning about prog...
We model notions of computation using algebraic operations and equations. We show that these generat...
In mathematics the application of a function f to an argument x always yields the same result y = f(...