Package frege.lib.Random

Compiled: Wed Dec 05 00:07:17 PST 2012 from source file: ./frege/lib/Random.fr

Package Documentation

Random numbers This tries to mimick Haskell's System.Random module as far as quickcheck needs it. The type JavaGen is the random number generator found in java.util.Random

Table of Content

Imports

Classes

class Random r

Known Instances

Long, Int

Member Functions

random :: (Random r, RandomGen g) => g -> (r, g)

a random value

randomR :: (Random r, RandomGen g) => (r, r) -> g -> (r, g)

a random value in the given bounds

randomRs :: (Random r, RandomGen g) => (r, r) -> g -> [r]

a list of random values in the given bound

randoms :: (Random r, RandomGen g) => g -> [r]

a list of random values

class RandomGen g

Interface for random number generators

Known Instances

StdGen

Member Functions

genRange :: RandomGen g => g -> (Int, Int)
next :: RandomGen g => g -> (Int, g)
nextLong :: RandomGen g => g -> (Long, g)
split :: RandomGen g => g -> (g, g)

Instances

instance RandomGen StdGen

Member Functions

genRange :: StdGen -> (Int, Int)

inherited from RandomGen.genRange

next :: StdGen -> (Int, StdGen)
nextLong :: StdGen -> (Long, StdGen)
split :: StdGen -> (StdGen, StdGen)
instance Random Int

Member Functions

random :: RandomGen α => α -> (Int, α)
randomR :: RandomGen α => (Int, Int) -> α -> (Int, α)
randomRs :: RandomGen α => (Int, Int) -> α -> [Int]

inherited from Random.randomRs

randoms :: RandomGen α => α -> [Int]

inherited from Random.randoms

instance Random Long

Member Functions

random :: RandomGen α => α -> (Long, α)
randomR :: RandomGen α => (Long, Long) -> α -> (Long, α)

We allow only intervals from (Long.minBound `div` 2) to (Long.maxBound `div` 2) with the exception (Long.minBound, Long.maxBound), which is allowed.

randomRs :: RandomGen α => (Long, Long) -> α -> [Long]

inherited from Random.randomRs

randoms :: RandomGen α => α -> [Long]

inherited from Random.randoms

Data Types

data StdGen

Constructors

StdGen Long

Member Functions

new :: Int -> StdGen

Functions and Values

mkStdGen :: Int -> StdGen

create a standard random generator with a fixed seed

newStdGen :: IO StdGen

create a standard random generator with an arbitrary seed

Functions and Values by Type

StdGen -> (StdGen, StdGen)

RandomGen_StdGen.split

StdGen -> (Int, StdGen)

RandomGen_StdGen.next

StdGen -> (Int, Int)

RandomGen_StdGen.genRange

StdGen -> (Long, StdGen)

RandomGen_StdGen.nextLong

Int -> StdGen

mkStdGen, StdGen.new

Long -> StdGen

StdGen.StdGen

IO StdGen

newStdGen

RandomGen g => g -> (Int, Int)

RandomGen.genRange

RandomGen g => g -> (Int, g)

RandomGen.next

RandomGen g => g -> (Long, g)

RandomGen.nextLong

RandomGen g => g -> (g, g)

RandomGen.split

RandomGen α => (Int, Int) -> α -> (Int, α)

Random_Int.randomR

RandomGen α => (Int, Int) -> α -> [Int]

Random_Int.randomRs

RandomGen α => (Long, Long) -> α -> (Long, α)

Random_Long.randomR

RandomGen α => (Long, Long) -> α -> [Long]

Random_Long.randomRs

RandomGen α => α -> (Int, α)

Random_Int.random

RandomGen α => α -> (Long, α)

Random_Long.random

RandomGen α => α -> [Int]

Random_Int.randoms

RandomGen α => α -> [Long]

Random_Long.randoms

(Random r, RandomGen g) => (r, r) -> g -> (r, g)

Random.randomR

(Random r, RandomGen g) => (r, r) -> g -> [r]

Random.randomRs

(Random r, RandomGen g) => g -> (r, g)

Random.random

(Random r, RandomGen g) => g -> [r]

Random.randoms

Valid HTML 4.01 Strict