Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add functions for generating lists with uniform elements #154

Merged
merged 1 commit into from
Nov 26, 2023

Conversation

lehins
Copy link
Contributor

@lehins lehins commented Nov 26, 2023

Add uniformListRM, uniformList, uniformListR, uniforms and uniformRs:

  • Add uniformList for consistency with uniformListM
  • Add uniformListRM for consistency with uniformListM
  • Add uniformListR for consistency with uniformListRM
  • Add uniforms and uniformRs to match randoms and randomRs. Unlike uniformList and uniformListR, those two work well with list fusion, because they don't have to return the final generator.

…niformRs`

Cleanup and improve tests a bit
@lehins lehins force-pushed the lehins/uniformList branch from 5c9c63b to a63f472 Compare November 26, 2023 21:23
@lehins lehins merged commit bc92d76 into master Nov 26, 2023
48 checks passed
lehins added a commit that referenced this pull request Nov 26, 2023
lehins added a commit that referenced this pull request Nov 26, 2023
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 29, 2025
# 1.3.0

* Improve floating point value generation and avoid degenerate cases: [#172](haskell/random#172)
* Add `Uniform` instance for `Maybe` and `Either`: [#167](haskell/random#167)
* Add `Seed`, `SeedGen`, `seedSize`, `seedSizeProxy`, `mkSeed` and `unSeed`:
  [#162](haskell/random#162)
* Add `mkSeedFromByteString`, `unSeedToByteString`, `withSeed`, `withSeedM`, `withSeedFile`,
  `seedGenTypeName`, `nonEmptyToSeed`, `nonEmptyFromSeed`, `withSeedM`, `withSeedMutableGen` and `withSeedMutableGen_`
* Add `SplitGen` and `splitGen`: [#160](haskell/random#160)
* Add `unifromShuffleList` and `unifromShuffleListM`: [#140](haskell/random#140)
* Add `uniformWordR`: [#140](haskell/random#140)
* Add `mkStdGen64`: [#155](haskell/random#155)
* Add `uniformListRM`, `uniformList`, `uniformListR`, `uniforms` and `uniformRs`:
  [#154](haskell/random#154)
* Add compatibility with recently added `ByteArray` to `base`:
  [#153](haskell/random#153)
  * Switch to using `ByteArray` for type class implementation instead of
    `ShortByteString`
  * Add `unsafeUniformFillMutableByteArray` to `RandomGen` and a helper function
    `defaultUnsafeUniformFillMutableByteArray` that makes implementation
    for most instances easier.
  * Add `uniformByteArray`, `uniformByteString` and `uniformFillMutableByteArray`
  * Deprecate `genByteString` in favor of `uniformByteString`
  * Add `uniformByteArrayM` to `StatefulGen`
  * Add `uniformByteStringM` and `uniformShortByteStringM`
  * Deprecate `System.Random.Stateful.uniformShortByteString` in favor of `uniformShortByteStringM` for
    consistent naming and a future plan of removing it from `StatefulGen`
    type class
  * Add a pure `System.Random.uniformShortByteString` generating function.
  * Deprecate `genShortByteString` in favor of `System.Random.uniformShortByteString`
  * Expose a helper function `fillByteArrayST`, that can be used for
    defining implementation for `uniformByteArrayM`
  * Deprecate `genShortByteStringST` and `genShortByteStringIO` in favor of `fillByteArrayST`
* Improve `FrozenGen` interface: [#149](haskell/random#149)
  * Move `thawGen` from `FreezeGen` into the new `ThawGen` type class. Fixes an issue with
    an unlawful instance of `StateGen` for `FreezeGen`.
  * Add `modifyGen` and `overwriteGen` to the `FrozenGen` type class
  * Switch `splitGenM` to use `SplitGen` and `FrozenGen` instead of deprecated `RandomGenM`
  * Add `splitMutableGenM`
  * Switch `randomM` and `randomRM` to use `FrozenGen` instead of `RandomGenM`
  * Deprecate `RandomGenM` in favor of a more powerful `FrozenGen`
* Add `isInRangeOrd` and `isInRangeEnum` that can be used for implementing `isInRange`:
  [#148](haskell/random#148)
* Add `isInRange` to `UniformRange`: [#78](haskell/random#78)
* Add default implementation for `uniformRM` using `Generics`:
  [#92](haskell/random#92)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant