perfect-vector-shuffle: Library for performing vector shuffles
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
This package contains functions for performing in-place Fisher--Yates shuffles on mutable and immutable vectors along with some related functionality. The shuffles are uniform at random amongst all permuations.
For an example of how to use it:
module Main where import Data.Vector import Immutable.Shuffle main :: IO () main = do { shuffleMyVector >>= print; cycleMyVector >>= print; derangeMyVector >>= print; } myVector :: Vector Int myVector = fromList [1..10] shuffleMyVector :: IO (Vector Int) shuffleMyVector = shuffleM myVector cycleMyVector :: IO (Vector Int) cycleMyVector = maximalCycleM myVector derangeMyVector :: IO (Vector Int) derangeMyVector = derangementM myVector
This gives the following:
>>> main [2,8,1,5,10,9,7,3,6,4] [6,8,4,10,9,2,5,7,3,1] [8,5,4,1,10,9,3,6,2,7] >>> main [7,9,3,5,10,6,8,1,2,4] [2,4,10,7,8,1,5,9,3,6] [4,8,5,2,7,3,9,6,10,1]
Properties
Versions | 0.1.0, 0.1.1, 0.1.1.1, 0.1.1.2, 0.1.1.2 |
---|---|
Change log | CHANGELOG.md |
Dependencies | base (>=4.9 && <4.20), MonadRandom (>=0.5.1.1 && <0.7), perfect-vector-shuffle, primitive (>=0.6.4 && <0.9), random (>=1.1 && <1.3), vector (>=0.12.0 && <0.14) [details] |
License | BSD-3-Clause |
Copyright | 2019 |
Author | Callan McGill |
Maintainer | callan.mcgill@gmail.com |
Category | Random, Vector |
Home page | https://github.com/Boarders/perfect-vector-shuffle |
Bug tracker | https://github.com/Boarders/perfect-vector-shuffle/issues |
Source repo | head: git clone https://github.com/Boarders/perfect-vector-shuffle |
Uploaded | by callanmcgill at 2024-06-10T16:16:23Z |
Modules
[Index] [Quick Jump]
- Immutable
- Mutable
Downloads
- perfect-vector-shuffle-0.1.1.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees