MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Controlling Effects (1996) [42 citations — 0 self]

Download:
Download as a PDF | Download as a PS
by Andrzej Filinski, John Reynolds Co-chair, Stephen Brookes
http://reports-archive.adm.cs.cmu.edu/anon/1996/CMU-CS-96-119.ps
Add To MetaCart

Abstract:

Many computational effects, such as exceptions, state, or nondeterminism, can be conveniently specified in terms of monads. We investigate a technique for uniformly adding arbitrary such effects to ML-like languages, without requiring any structural changes to the programs themselves. Instead, we use monadic reflection, a new language construct for explicitly converting back and forth between representations of effects as behavior and as data. Using monadic reflection to characterize concisely all effects expressible with a given monad, we can give a precise meaning to the notion of simulating one effect by another, more general one. We isolate a simple condition allowing such a simulation, and in particular show that any monadic effect can be simulated by a continuation monad. In other words, under relatively mild assumptions on the base language (allowing formation of a suitably large answer type), control becomes a universal effect. Concluding the development, we show that this universal effect can itself

Citations

395 Comprehending Monads – Wadler - 1992
67 Continuation-based multiprocessing – Wand - 1980
66 The mystery of the tower revealed: A non-reflective description of the reflective tower – Wand, Friedman - 1988
48 The essence of functional programming (invited talk – Wadler - 1992
23 Monads and composable continuations – Wadler - 1994