[Haskell-cafe] Re: ANNOUNCE: GotoT-transformers version 1.0
oleg at okmij.org
oleg at okmij.org
Thu Sep 9 03:45:26 EDT 2010
Antoine Latter wrote:
> To recover from my overly complex previous post, here is a much simply
> goto based on existing monad transformers:
> > goto :: Monad m => ContT r m r -> ContT r m a
> > goto (ContT m) = ContT $ \_ ->
> > m return
That is precisely how continuations were discovered (as John Reynolds
documents, continuations have been discovered and rediscovered
multiple times). The paper
Continuations: A Mathematical Semantics for Handling Full Jumps
Christopher Strachey and Christopher P. Wadsworth
http://www.ling.ohio-state.edu/research/groups/commies/past/autumn2009/strachey-wadsworth2000.pdf
first published in 1974 and republished in
Higher-Order and Symbolic Computation, 13, 135-152, 2000
starts with the following sentence:
The purpose of this paper is to explain a method of giving the
mathematical semantics of a programming language which includes a very
general form of jump (goto statement).
The cited goto expression above appears, in mathematical notation, as
the second equation on p. 143 of the paper. Labels are considered
next. The paper is still a good read. One can literally implement the
language of the paper, by reading domain equations as the
implementation of a monad.
Incidentally, Note 1 of the paper anticipated delimited continuations.
More information about the Haskell-Cafe
mailing list