[Haskell-cafe] runST

Sebastian Sylvan sebastian.sylvan at gmail.com
Sat Oct 8 08:33:05 EDT 2005


On 10/8/05, Joel Reymont <joelr1 at gmail.com> wrote:
> Folks,
>
> 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
actions.

So, rule of thumb: Don't use IO if you don't really really REALLY need it.

/S

--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862


More information about the Haskell-Cafe mailing list