[Haskell-cafe] random question

Bryan O'Sullivan bos at serpentine.com
Wed Oct 7 17:25:10 EDT 2009


On Wed, Oct 7, 2009 at 1:59 PM, Michael Mossey <mpm at alumni.caltech.edu>wrote:

> My thread about randomness got hijacked so I need to restate my remaining
> question here. Is it acceptable to write pure routines that use but do not
> return generators, and then call several of them from an IO monad with a
> generator obtained by several calls to newStdGen?
>
> shuffle :: RandomGen g => g -> [a] -> [a]
> shuffle = ...
>
> foo :: [a] -> [a] -> IO ()
> foo xs ys = do
>  g1 <- newStdGen
>  print $ shuffle g1 xs
>  g2 <- newStdGen
>  print $ shuffle g2 ys
>
> Does this kind of thing exhibit good pseudorandomness?
>

If you believe in the safety of the split operation (which I don't), then
yes, since use of it is what's happening behind the scenes. In other words,
provided you're a faithful sort and split doesn't make you squirm too much,
you don't need to plug all that ugly IO in there.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091007/dcd14cad/attachment.html


More information about the Haskell-Cafe mailing list