gpt4 book ai didi

haskell - 如何创建 MonadRandom (StateT PureMT m0)? ( haskell )

转载 作者:行者123 更新时间:2023-12-01 12:40:26 27 4
gpt4 key购买 nike

我正在尝试使用 https://hackage.haskell.org/package/random-fu-0.2.6.0/docs/Data-Random.html#g:6 中的 MonadRandom

具体来说,我有一个带有类型签名的函数:

randomN::MonadRandom m => m Int

我想使用带有已知种子的 Mersenne Twister 来运行它。

如何“创建”一个实例Monad m0 => MonadRandom (StateT PureMT m0) 来自文档?

最佳答案

由于 MonadRandom 的实例已经存在于 Monad m => StateT PureMT m 中,您只需要类似的东西

-- State s a = StateT s Identity a
test :: State PureMT (Int, Int)
test = do
a <- randomN
b <- randomN
return (a, b)

你可以运行它

main :: IO ()
main = do
-- You can replace 1234 with whatever seed you want
let (result, finalState) = runState test $ pureMT 1234
putStr "The result: "
print result
putStr "The final state: "
print finalState

关于haskell - 如何创建 MonadRandom (StateT PureMT m0)? ( haskell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389799/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com