Information for build ghc-random-1.2.1.1-1.rvre0.fc38
ID | 250394 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Package Name | ghc-random | ||||||||||||||||||||||
Version | 1.2.1.1 | ||||||||||||||||||||||
Release | 1.rvre0.fc38 | ||||||||||||||||||||||
Epoch | |||||||||||||||||||||||
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. | ||||||||||||||||||||||
Built by | davidlt | ||||||||||||||||||||||
State | complete | ||||||||||||||||||||||
Volume | DEFAULT | ||||||||||||||||||||||
Started | Fri, 23 Jun 2023 18:23:27 UTC | ||||||||||||||||||||||
Completed | Fri, 23 Jun 2023 18:23:27 UTC | ||||||||||||||||||||||
Tags |
|
||||||||||||||||||||||
RPMs |
|
||||||||||||||||||||||
Changelog | * Fri Jun 23 2023 David Abdurachmanov <davidlt@rivosinc.com> - 1.2.1.1-1.rvre0 - Rebuilt for Fedora/RISCV (riscv64) * Sun Jan 22 2023 Jens Petersen <petersen@redhat.com> - 1.2.1.1-5 - https://hackage.haskell.org/package/random-1.2.1.1/changelog - refresh to cabal-rpm-2.1.0 with SPDX migration * Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Fri Jun 17 2022 Jens Petersen <petersen@redhat.com> - 1.2.0-3 - rebuild * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Thu Aug 05 2021 Jens Petersen <petersen@redhat.com> - 1.2.0-1 - update to 1.2.0 - splitmix now subpackage (moved from QuickCheck) * Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild |