On Wed, Oct 7, 2009 at 1:59 PM, Michael Mossey <m...@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.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe