这个问题在其他地方很接近,但我还没有找到任何专门解决它的东西(至少不是以我能够理解的方式)。
我想以一种取决于各种随机选择的方式更新状态。由于我使用的是 RandomSource 类型类的实例,所有这些随机选择都存在于 IO monad 中,如下所示:
main :: IO Int
main = do
a <- pickRand [1..7]
return a
where pickRand lst = runRVar (choice lst) DevRandom
我想做的事情如下:存储一个 [Int] 类型的状态,如果随机选择的列表元素 a 大于 3 ,则将其推送到状态。有小费吗?