Name : ghc-random
| |
Version : 1.2.1.2
| Vendor : obs://build_opensuse_org/devel:languages:haskell
|
Release : dlh.81.31
| Date : 2024-02-04 17:26:32
|
Group : Unspecified
| Source RPM : ghc-random-1.2.1.2-dlh.81.31.src.rpm
|
Size : 0.86 MB
| |
Packager : (none)
| |
Summary : Pseudo-random number generation
|
Description :
This package provides basic pseudo-random number generation, including the ability to split random number generators.
== \"System.Random\": pure pseudo-random number interface
In pure code, use \'System.Random.uniform\' and \'System.Random.uniformR\' from \"System.Random\" to generate pseudo-random numbers with a pure pseudo-random number generator like \'System.Random.StdGen\'.
As an example, here is how you can simulate rolls of a six-sided die using \'System.Random.uniformR\':
>>> let roll = uniformR (1, 6) :: RandomGen g => g -> (Word, g) >>> let rolls = unfoldr (Just . roll) :: RandomGen g => g -> [Word] >>> let pureGen = mkStdGen 42 >>> take 10 (rolls pureGen) :: [Word] [1,1,3,2,4,5,3,4,6,2]
See \"System.Random\" for more details.
== \"System.Random.Stateful\": monadic pseudo-random number interface
In monadic code, use \'System.Random.Stateful.uniformM\' and \'System.Random.Stateful.uniformRM\' from \"System.Random.Stateful\" to generate pseudo-random numbers with a monadic pseudo-random number generator, or using a monadic adapter.
As an example, here is how you can simulate rolls of a six-sided die using \'System.Random.Stateful.uniformRM\':
>>> let rollM = uniformRM (1, 6) :: StatefulGen g m => g -> m Word >>> let pureGen = mkStdGen 42 >>> runStateGen_ pureGen (replicateM 10 . rollM) :: [Word] [1,1,3,2,4,5,3,4,6,2]
The monadic adapter \'System.Random.Stateful.runStateGen_\' is used here to lift the pure pseudo-random number generator \'pureGen\' into the \'System.Random.Stateful.StatefulGen\' context.
The monadic interface can also be used with existing monadic pseudo-random number generators. In this example, we use the one provided in the < https://hackage.haskell.org/package/mwc-random mwc-random> package:
>>> import System.Random.MWC as MWC >>> let rollM = uniformRM (1, 6) :: StatefulGen g m => g -> m Word >>> monadicGen < - MWC.create >>> replicateM 10 (rollM monadicGen) :: IO [Word] [2,3,6,6,4,4,3,1,5,4]
See \"System.Random.Stateful\" for more details.
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/haskell/openSUSE_Tumbleweed/x86_64 |