[Haskell] strict vs. lazy state threads
Wolfgang Jeltsch
wolfgang at jeltsch.net
Tue Jul 26 06:43:44 EDT 2005
Hello,
http://haskell.org/ghc/docs/latest/html/libraries/base/Control.Monad.ST.html
says about the module Control.Monad.ST:
This library provides support for strict state threads, as described in
the PLDI '94 paper by John Launchbury and Simon Peyton Jones Lazy State
Threads.
I cannot find a paper Lazy State Threads in the list of papers on Simon Peyton
Jones' website but I assume that the library documentation refers to Lazy
*Functional* State Threads.
The problem is that I cannot find an exact specification about what strict and
lazy means in conjunction with state threads. I thought that the (only)
difference between strict and lazy state threads is that with strict state
threads the result is _|_ if the final state is _|_ while with lazy state
threads the result may be non-_|_ even if the final state is _|_.
Operationally, this would mean that with strict state threads the final state
would always be demanded which wouldn't be true for lazy state threads. Is
this correct?
But if it's correct, I don't understand why the library documentation claims
that the above-mentioned paper describes strict state threads since from my
studies of the paper I came to the conclusion that it describes lazy state
threads.
Any helpful comments are appreciated.
Regards,
Wolfgang
More information about the Haskell
mailing list