如何在ST monad中对随机值进行采样?

时间:2016-10-04 12:26:45

标签: haskell random monad-transformers

如果我在RVar monad

中有一个随机值生成器
ranfu :: RVar Bool

和在ST monad中进行某种遍历的高阶函数

stTrav :: PrimMonad m => (Int -> m b) -> m [b]

然后我如何在此遍历的循环中使用ranfu?我是否需要通过RVar引导STRef的状态,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是使用Data.Random.Source.MWCRandomSource的{​​{1}}个实例:

ST