[Haskell-cafe] Sequencing Operations in a Monad
Paul Johnson
paul at cogito.org.uk
Sat Sep 15 05:28:07 EDT 2007
SevenThunders wrote:
> Unfortunately if I wrap my matrix references in the IO monad, then at best
> computations like
> S = A + B are themselves IO computations and thus whenever they are
> 'invoked' the computation ends up getting performed repeatedly contrary to
> my intentions.
This sounds like a case for the infamous performUnsafeIO. The reason
this is "unsafe" is that the compiler assumes that the IO computation it
wraps has no visible side effects, so it doesn't matter when it is
performed or how many times it gets performed. If your IO computation
indeed has this nature then you are OK, but its up to you to make sure
of this.
Paul.
More information about the Haskell-Cafe
mailing list