In this paper we argue for the importance of lazy state, that is, sequences of imperative (destructive) actions in which the actions are delayed until their results are required. This enables state-based computations to take advantage of the control power of lazy evaluation. We provide some examples of its use, and describe an implementation within Glasgow Haskell. 1 Introduction There has long been a tension between functional programming languages and their more traditional imperative counterparts. On the one hand, functional languages are commonly more expressive and easier to reason about than imperative languages, but on the other hand, certain algorithms and interactions seem to rely fundamentally on state-based computation. It is cl...
This paper proposes a database manipulation interface for the statically typed, purely functional pr...
Many programs are executed according to the conventional, eager execution order, for which verificat...
Many state-of-the-art information-flow control (IFC) tools are implemented as Haskell libraries. In ...
The evaluation strategies of programming languages can be broadly categorised as strict or lazy. A c...
Assertions test expected properties of run-time values without disrupting the normal working of a pr...
AbstractLaziness restricts the exploitation of parallelism because expressions are evaluated only on...
AbstractThe extension of Haskell with a built-in state monad combines mathematical elegance with ope...
We investigate the interaction of lazy evaluation and backtracking in the framework of functional lo...
In the recent years a multitude of functional language implementations has been developed, whereby t...
A criticism often levelled at functional languages is that they do not cope elegantly or efficiently...
Call-by-need evaluation, also known as lazy evaluation, provides two key benefits: compositional pro...
Lazy evaluation is an evaluation strategy in programming languages. Lazy evaluation delays the evalu...
This article describes the implementation of a debugger for lazy functional languages like Haskell. ...
In this paper we present a debugging model for a lazy functional logic programming language whose se...
Designing debugging tools for lazy functional programming languages is a complex task which is often...
This paper proposes a database manipulation interface for the statically typed, purely functional pr...
Many programs are executed according to the conventional, eager execution order, for which verificat...
Many state-of-the-art information-flow control (IFC) tools are implemented as Haskell libraries. In ...
The evaluation strategies of programming languages can be broadly categorised as strict or lazy. A c...
Assertions test expected properties of run-time values without disrupting the normal working of a pr...
AbstractLaziness restricts the exploitation of parallelism because expressions are evaluated only on...
AbstractThe extension of Haskell with a built-in state monad combines mathematical elegance with ope...
We investigate the interaction of lazy evaluation and backtracking in the framework of functional lo...
In the recent years a multitude of functional language implementations has been developed, whereby t...
A criticism often levelled at functional languages is that they do not cope elegantly or efficiently...
Call-by-need evaluation, also known as lazy evaluation, provides two key benefits: compositional pro...
Lazy evaluation is an evaluation strategy in programming languages. Lazy evaluation delays the evalu...
This article describes the implementation of a debugger for lazy functional languages like Haskell. ...
In this paper we present a debugging model for a lazy functional logic programming language whose se...
Designing debugging tools for lazy functional programming languages is a complex task which is often...
This paper proposes a database manipulation interface for the statically typed, purely functional pr...
Many programs are executed according to the conventional, eager execution order, for which verificat...
Many state-of-the-art information-flow control (IFC) tools are implemented as Haskell libraries. In ...