Random number generator

Stefan Reich doc at drjava.de
Thu Jan 15 23:00:24 EST 2004

That's definitely not a message for the bugs list :-)

Please have a look at this page: 

It gives the correct signature for drawInt as you defined it: Int -> Int 
-> IO Int

The signature you gave doesn't work because it specifies a pure function 
- for the same set of arguments, it must always produce the same result.

How many ints do you want to generate? I don't think it is possible to 
generate an infinite lazy list in this case because this interferes with 
monad semantics. If you want a fixed number of random ints, try this:

drawInts :: Int -> Int -> Int -> IO [Int]
drawInts num x y = sequence (replicate num (getStdRandom (randomR (x,y))))


Gwoing Yu wrote:

> Hi,
> I need some assistances in calling random number generator using 6.0.1 
> haskell compiler. To return a list of random int [Int], I have tried  
> the following:
> drawInt :: Int->Int -> [Int]
> drawInt x y =  getStdRandom (randomRs (x,y))
> It has a type error. I would appreciate if you know how to fix it.
> Thank you in advance.
> Tina Yu
> http://www.improvise.ws <http://www.improvise.ws/>

More information about the Glasgow-haskell-users mailing list