polysemy-RandomFu: Experimental, RandomFu effect and interpreters for polysemy

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.

[maintain] [Publish]

Please see the README on GitHub at https://github.com/adamConnerSax/polysemy-Extra/tree/master/polysemy-RandomFu#polysemy-randomfu


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.1.0, 0.4.1.1, 0.4.2.0, 0.4.2.1, 0.4.3.0, 0.4.4.0, 0.4.4.1, 0.5.0.0
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), polysemy (>=1.3.0 && <1.6), polysemy-plugin (>0.2.0 && <0.4), polysemy-zoo (>=0.6.0 && <0.8), random-fu (>=0.2.7.7 && <0.3.0.0), random-source (>=0.3.0.11 && <0.4.0.0) [details]
License BSD-3-Clause
Copyright 2019 Adam Conner-Sax
Author Adam Conner-Sax
Maintainer adam_conner_sax@yahoo.com
Category Polysemy
Home page https://github.com/adamConnerSax/polysemy-Extra#readme
Bug tracker https://github.com/adamConnerSax/polysemy-Extra/issues
Source repo head: git clone https://github.com/adamConnerSax/polysemy-Extra(polysemy-RandomFu)
Uploaded by adamCS at 2021-06-09T00:59:40Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for polysemy-RandomFu-0.4.1.1

[back to package description]

polysemy-RandomFu v0.4.0.0

Build Status Hackage Hackage Dependencies

Summary

Example (from the tests)

import           Polysemy
import           Polysemy.RandomFu

import qualified Data.Random                   as R
import qualified Data.Random.Source.PureMT     as R

getRandomInts :: Member RandomFu r => Int -> Sem r [Int]
getRandomInts nDraws =
  sampleRVar $ M.replicateM nDraws (R.uniform 0 (100 :: Int))
  
main :: IO ()
main = do
  seed <- R.newPureMT
  putStrLn . show $ runM . runRandomIOPureMT (R.pureMT seed) $ getRandomInts 5

should print a list of 5 pseudo-random integers. They will be different each time you run because the newPureMT function returns a different seed each time it's called. If you replace that seed in the R.pureMT argument to runRandomIOPureMT with a fixed number then you will get the same pseudo-random sequences each time. This can be useful for testing.

Notes