我想用 Control.Monad.Random.Class.fromList
fromList :: MonadRandom m => [(a, Rational)] -> m a
https://hackage.haskell.org/package/MonadRandom-0.5.3/docs/Control-Monad-Random-Class.html#v:fromList
和...一起 System.Random.mkStdGen
mkStdGen :: Int -> StdGen
https://hackage.haskell.org/package/random-1.2.1/docs/System-Random.html#v:mkStdGen
我看到了實體
(Monad m, RandomGen g) => MonadInterleave (RandT g m)
但我不確定如何組合。
uj5u.com熱心網友回復:
您需要使用具有 實體的 monad MonadRandom,例如RandT:
import System.Random
import Control.Monad.Random
main :: IO ()
main = do
let stdGen = mkStdGen 2021
putStrLn $ fst $
runRand (fromList [("hello", 0.5), ("world", 0.1)]) stdGen
這將產生:
world
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359168.html
