
On 30/12/2011 00:22, Jerzy Karczmarczuk wrote:
Steve Horne :
Some code (intended to be loaded into GHCi and played with)
-- import System.Random -- randSelect "this is a list" 5 (mkStdGen 9877087) -- ... module P23 (randSelect) where -- ... randSelect' (x:xs) n l g = let xsLen = (l - 1) (rnd, g') = randomR (0, xsLen) g -- ...
I see no IO monad anywhere in there. Of course I'm cheating - providing a constant seed at runtime.
The last remark is irrelevant. Normally the seed IS constant, injected once, then updated by the generator iself.
I don't know what you are trying to prove. I don't know why you think I'm trying to prove something here.
Earlier, I mentioned that Haskell provides pure functional random number support in the library - as part of going off on a tangent and, as it happens, of making a mistake. I specifically said something like "with no mention of the IO monad" with respect to type signatures. You said "Look well at those functions, please". I accepted your challenge. I looked well. I still say that Haskell provides pure functional random number support in the library. My "last remark" was there basically because of the earlier mistake - acknowledging that I've bypassed the whole issue of where the seed comes from, which may for all I know be supported by a library IO action, and which would be relevant given how this randomness thread started. That was my first mistake in this randomness thread - another mistake I made was saying unsafePerformIO might reasonably be used to sneak in entropy. Basically, I replied to your challenge - nothing more. I really don't even care much about random numbers - that's why my easiest reference was from back when I was doing those tutorials. There is no deep point here unless you're making one I haven't understood yet. As for whether or not Haskell is pure - this randomness thread isn't relevant to that any more. If you see my reference to purity as a weasel way of insinuating that there's also impurity in Haskell - I don't need to insinuate that, I've openly stated my view and explained my reasoning as well as I'm able. What point is there in being a cowardly weasel if you also paint a bullseye on your head and shout "Here I am!"?