gpt4 book ai didi

haskell - 如何生成使用 MVars 的数据类型?

转载 作者:行者123 更新时间:2023-12-04 10:53:45 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据类型:

data PageLogCommand = LogPage Page
| Stop (MVar ())

我想创建一个 Gen PageLogCommand 类型的生成器.

对于 Stop但是,创建一个新的空 MVar 的类型为 IO (MVar a) ,那么我怎样才能得到 MVar出了 IO monad 并用它来制作 Gen类型?

最佳答案

如何通过MVar作为您 Gen 的参数功能?喜欢

pageLogCommandGen :: MVar () -> Gen PageLogCommand
pageLogCommandGen stopMVar = oneof
[ LogPage <$> arbitrary
, pure (Stop stopMVar)
]

然后就可以生成 stopMVar在 IO 中并传递它

do stopMVar <- newEmptyMVar
plc <- generate (pageLogCommandGen stopMVar)
...

在测试属性之前。

关于haskell - 如何生成使用 MVars 的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59331364/

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