Lazy Functional State Threads (1994) [98 citations — 9 self]
http://www.dcc.ufmg.br/~camarao/fp/articles/lazy-s
ftp://ftp.unibw-muenchen.de/pub/comp/proglang/hask
http://uebb.cs.tu-berlin.de/lehre/fpTech/SS96/pape
DBLP
CACHED:
Abstract:
Some algorithms make critical internal use of updatable state, even though their external specification is purely functional. Based on earlier work on monads, we present a way of securely encapsulating stateful computations that manipulate multiple, named, mutable objects, in the context of a non-strict, purely-functional language. The security of the encapsulation is assured by the type system, using parametricity. Intriguingly, this parametricity requires the provision of a (single) constant with a rank-2 polymorphic type. A shorter version of this paper appears in the Proceedings of the ACM Conference on Programming Languages Design and Implementation (PLDI), Orlando, June 1994. 1 Introduction Purely functional programming languages allow many algorithms to be expressed very concisely, but there are a few algorithms in which in-place updatable state seems to play a crucial role. For these algorithms, purelyfunctional languages, which lack updatable state, appear to be inherently i...

