Is there any inbuilt function in Haskell that gives a random number in a range like
x = random(a,b) such that x gives an integer lies between a and b .
a <= x <= b
And some functions in Haskell gives same number when I executes multiple times .
Thank you in advance :) .
There is one called
randomR
inSystem.Random
. If we look at it's type signature:and specialise it to Integer we get
so this is a function that given a low and hi, and a random number generator returns a random Integer and a new random generator. This makes sense, since Haskell is a pure language, calling randomR with the same random generator will always return the same result.
So how can we use this in a program?, We'll need a random number generator to start with. The easiest way is to use either
mkStdGen :: Int -> StdGen
to create a random number generator from a seed, or to usenewStdGen :: IO StdGen
to return the system random number generator.