gpt4 book ai didi

haskell - 如何使用 MonadRandom?

转载 作者:行者123 更新时间:2023-12-03 23:23:33 26 4
gpt4 key购买 nike

有人可以提供如何使用“MonadRandom”的“傻瓜”示例吗?

目前我有一些代码可以做一些事情,比如传递生成器变量,从主函数一直到:

 main = do
g <- getStdGen
r <- myFunc g
putStrLn "Result is : " ++ show r

--my complicated func
myFunc g x y z = afunc g x y z
afunc g x y z = bfunc g x y
bfunc g x y = cfunc g x
cfunc g x = ret where
(ret, _ ) = randomR (0.0, 1.0) g

谢谢

最佳答案

基本上所有额外的g参数可以被删除。然后使用 Control.Monad.Random 中的函数获得随机数(例如 getRandomR )。这是您的示例(我添加了一些参数以使其编译):

import Control.Monad.Random

main = do
g <- getStdGen
let r = evalRand (myFunc 1 2 3) g :: Double
-- or use runRand if you want to do more random stuff:
-- let (r,g') = runRand (myFunc 1 2 3) g :: (Double,StdGen)
putStrLn $ "Result is : " ++ show r

--my complicated func
myFunc x y z = afunc x y z
afunc x y z = bfunc x y
bfunc x y = cfunc x
cfunc x = do
ret <- getRandomR (0.0,1.0)
return ret

关于haskell - 如何使用 MonadRandom?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266765/

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