[Haskell-cafe] On the purity of Haskell /Random generators
Bardur Arantsson
spam at scientician.net
Fri Dec 30 12:04:01 CET 2011
On 12/29/2011 09:39 PM, Jerzy Karczmarczuk wrote:
>
> "Truly random" numbers are very rarely used, forget about them.
Well, obviously, but why should we forget about them? The usual
approach(*) is to gather entropy from a truly(**) random source
and use that to seed (and perhaps periodically re-seed) a PRNG.
(*) At least as far as I understand it.
(**) At least one believed to be truly random.
My point was simply to make clear the distinction between RNG vs. PRNG.
> "Standard" r. generators (pseudo-random) in Haskell are monadic, because
> the relevant algorithms are stateful.
> Congruential, Fibonacci, Mersenne Twister, whatever, is a function, more
> or less:
> (newValue,newSeed) = rgen seed
>
> The monadic approach serves mainly to hide the seed.
> Some people prefer to use random streams, no monads, so the question of
> Steve Horne is not universal.
Random streams are not referentially transparent, though, AFAICT...?
Either way this thread has gone on long enough, let's not prolong it
needlessly with this side discussion.
More information about the Haskell-Cafe
mailing list