[ol9_developer_EPEL] ghc-random-1.2.0-2.el9.aarch64

Name:ghc-random
Version:1.2.0
Release:2.el9
Architecture:aarch64
Group:Unspecified
Size:745217
License:BSD
RPM: ghc-random-1.2.0-2.el9.aarch64.rpm
Source RPM: ghc-random-1.2.0-2.el9.src.rpm
Build Date:Tue Sep 06 2022
Build Host:build-ol9-aarch64.oracle.com
Vendor:Oracle America
URL:https://hackage.haskell.org/package/random
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.runGenState_' 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.

Changelog (Show File list) (Show related packages)