Может ли кто-нибудь предоставить пример «для-манекенов», как использовать «MonadRandom»?Как пользоваться 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
Thanks
Я думаю, что у вас 'runRand' и' evalRand' перепутаны! – dflemstr
Не знаете, как это произошло, так как я запустил код :) Исправлено. – porges
Конечно, 'myFunc',' aFunc', 'bFunc' и' cFunc' теперь являются монадическими. Они возвращают значения, завернутые в монаду «Rand», которые должны быть извлечены с помощью '>> =' (или '<-' в' do') и созданы с помощью 'return'. – pat