sebastian.sylvan at gmail.com
Sat Oct 8 08:33:05 EDT 2005
On 10/8/05, Joel Reymont <joelr1 at gmail.com> wrote:
> Why use runST in the following example at
> http://www.n-heptane.com/nhlab/repos/NewBinary/Tests/BinDouble.hs ?
> doubleToInts d = runST (
> do arr <- newDoubleArray (1,2)
> writeDoubleArray arr 1 d
> i1 <- readIntArray arr 1
> i2 <- readIntArray arr 2
> return (i1,i2))
> Isn't it possible to do the same within the IO monad?
It is, but why would you want to?
doubleToInts in your example could be called from a pure function,
whereas an IO-action doing the same could only be called from other IO
So, rule of thumb: Don't use IO if you don't really really REALLY need it.
More information about the Haskell-Cafe