On Nov 30, 2007 2:39 PM, Andrew Coppin <[EMAIL PROTECTED]> wrote:

> Sebastian Sylvan wrote:
> > On Nov 29, 2007 9:10 PM, Andrew Coppin <[EMAIL PROTECTED]>
> wrote:
> >
> >> How do you avoid accidentally recomputing the list multiple times?
> >>
> >
> > What do you mean? It's exactly the same as your original program but
> > with ST instead of IO? Why would it get accidentally recomputed in
> > this scenario and not before?
> >
>
> Because before the moment when it gets executed relative to the main I/O
> thread is explicitly defined, and now it isn't.
>

Yes it is.  There's nothing magical about how the I/O thread guarantees
when/in what order things get executed; it all has to do with data
dependencies.  Since the ST monad represents a strict state thread, it will
have exactly the same behavior in terms of when/in what order things get
executed as in the IO monad.

-Brent
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to