
Am Dienstag 09 Juni 2009 15:57:24 schrieb Magnus Therning:
On Tue, Jun 9, 2009 at 2:52 PM, ptrash
wrote: Hmm...it am not getting through it. I just want to generate a random number and then compare it with other numbers. Something like
r = randomRIO (1, 10) if (r > 5) then... else ...
You have to do it inside the IO monad, something like
myFunc = do r <- randomRIO (1, 10 if r > 5 then ... else ...
/M
Or make the source of the pseudo-random numbers explicit: import System.Random function :: (RandomGen g, Random a) => g -> other args -> result function gen whatever | r > 5 = blah newgen something | r < 3 = blub newgen somethingElse | otherwise = bling where (r,newgen) = randomR (lo,hi) gen and finally, when the programme is run: main = do args <- getArgs sg <- getStdGen foo <- thisNThat print $ function sg foo If you're doing much with random generators, wrap it in a State monad.