MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Lazy Functional State Threads (1994) [98 citations — 9 self]

by John Launchbury ,  Simon L Peyton Jones
In Programming Languages Design and Implementation
Add To MetaCart

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...

Citations

1122 Introduction to Functional Programming – Bird, Wadler - 1988
338 ML for the Working Programmer – Paulson - 1991
54 Detecting global variables in denotational specifications – Schmidt - 1985
32 Call by name, assignment, and the lambda calculus – Odersky, Rabin, et al. - 1993
29 Lazy imperative programming – Launchbury - 1993
23 The typechecking of programs with implicit type structure – McCracken - 1984
15 1985], ‘(Second-order logical relations – Mitchell, Meyer
2 Smetsers [Dec 1993], "Conventional and uniqueness typing in graph rewrite systems – Barendsen
2 JM Lucassen [Aug 1986], "Integrating functional and imperative programming – Gifford
2 PC McGeer & A P-C Ng [June 1988], "Are applicative languages inefficient – Ponder
1 Smetsers [Dee 1993], “Conventional and uniqueness typing in graph rewrite systemsl – Barendsen, JEW
1 JM Lucassen [Aug 1986], “Integrating functional and imperative programming – Gifford
1 SL Peyton Jones [Feb 1994], “Lazy functional state threads – Launchbury
1 PC McGeer & A P-C Ng [June 1988], “Are applicative languages inefficient – Ponder
1 Apr 1985], “Detecting global variables in denotational specifications – Schmidt