Safe Haskell | None |
---|---|
Language | Haskell2010 |
- module System.Random
- data Rand g a
- class (RandomGen g, MemberEffect Rand (Rand g) l) => EffectRandom g l
- runRand :: forall a l g. RandomGen g => g -> Effect (Rand g :+ l) a -> Effect l (a, g)
- evalRand :: RandomGen g => g -> Effect (Rand g :+ l) a -> Effect l a
- evalRandIO :: EffectLift IO l => Effect (Rand StdGen :+ l) a -> Effect l a
- getRandom :: forall a g l. (Random a, EffectRandom g l) => Effect l a
- getRandomR :: forall a g l. (Random a, EffectRandom g l) => (a, a) -> Effect l a
- getRandoms :: forall a g l. (Random a, EffectRandom g l) => Effect l [a]
- getRandomRs :: forall a g l. (Random a, EffectRandom g l) => (a, a) -> Effect l [a]
- fromList :: EffectRandom g l => [(a, Rational)] -> Effect l a
- uniform :: EffectRandom g l => [a] -> Effect l a
- withSplit :: forall g l a. EffectRandom g l => Effect l a -> Effect l a
Documentation
module System.Random
Random number generator
Since 0.1.0.0
class (RandomGen g, MemberEffect Rand (Rand g) l) => EffectRandom g l Source
(RandomGen g, MemberEffect (* -> * -> *) Rand (Rand g) l) => EffectRandom g l |
Execution
:: forall a l g . RandomGen g | |
=> g | initial internal random generator |
-> Effect (Rand g :+ l) a | Effectect using random numbers |
-> Effect l (a, g) |
Run a computation with random numbers
Since 0.1.0.0
evalRand :: RandomGen g => g -> Effect (Rand g :+ l) a -> Effect l a Source
Run a computation with random numbers, discarding the final generator.
Since 0.1.0.0
evalRandIO :: EffectLift IO l => Effect (Rand StdGen :+ l) a -> Effect l a Source
Run a computation with random numbers, discarding the final generator.
Since 0.1.0.0
Generator functions
getRandom :: forall a g l. (Random a, EffectRandom g l) => Effect l a Source
Return a randomly-selected value of type a. See random
for details.
Since 0.1.0.0
getRandomR :: forall a g l. (Random a, EffectRandom g l) => (a, a) -> Effect l a Source
Return a randomly-selected value of type a in the range (lo,hi)
. See randomR
for details.
Since 0.1.0.0
getRandoms :: forall a g l. (Random a, EffectRandom g l) => Effect l [a] Source
Return an infinite stream of random values of type a. See randoms
for details.
Since 0.1.0.0
getRandomRs :: forall a g l. (Random a, EffectRandom g l) => (a, a) -> Effect l [a] Source
Return an infinite stream of randomly-selected value
of type a
in the range (lo,hi)
. See randomRs
for details.
Since 0.1.0.0
fromList :: EffectRandom g l => [(a, Rational)] -> Effect l a Source
Sample a random value from a weighted list. The total weight of all elements must not be 0.
Since 0.1.0.0
uniform :: EffectRandom g l => [a] -> Effect l a Source
Sample a value from a uniform distribution of a list of elements.
Since 0.1.0.0
Misc
withSplit :: forall g l a. EffectRandom g l => Effect l a -> Effect l a Source
Split the current generator and execute the given computation with it.
Since 0.1.0.0