这个问题与其他地方所涵盖的内容相似,但我尚未找到特别针对它的解决方法(至少没有一种我能够理解的方式)。
我想以依赖于各种随机选择方式的方式更新状态。由于我正在使用 RandomSource 类型类的实例,所有这些随机选择都存在于 IO monad 中,如下所示:
我想要做的是类似以下的事情:存储类型为[Int]的状态,如果随机选择的列表元素a大于3,则将其推入状态。有什么建议吗?
我想以依赖于各种随机选择方式的方式更新状态。由于我正在使用 RandomSource 类型类的实例,所有这些随机选择都存在于 IO monad 中,如下所示:
main :: IO Int
main = do
a <- pickRand [1..7]
return a
where pickRand lst = runRVar (choice lst) DevRandom
我想要做的是类似以下的事情:存储类型为[Int]的状态,如果随机选择的列表元素a大于3,则将其推入状态。有什么建议吗?
StateT
单子变换器的内容。 - Ankur