现在我正在使用 MonadRandom 库。我有一个计算:
metroChain :: (RandomGen g) => Rand g Double
我想多次执行它,并按顺序打印出结果。或者更确切地说,我想创建某种多重计算列表。
做一次,我会用
main = do
result <- evalRandIO metroChain
print result
或者
main = evalRandIO metroChain >>= (\result -> print result)
但是,我在打印任意 (n) 个metroChain
结果时遇到了很多麻烦。
每个结果都应该使用最后一个结果末尾给出的 RandomGen ...... MonadRandom 应该是这样工作的,对吧?
我已经研究了replicateM
,fmap
和一些变形金刚(尽管我承认我似乎无法充分理解它们以掌握它们在我的问题中的应用)。
谁能帮我实现我正在寻找的功能?我觉得我错过了一些非常简单的东西。但我对 Haskell 很陌生。