小编Max*_*era的帖子

使用频率选择 Haskell QuickCheck

所以我有下面的代码,我试图将其作为一个实例Arbitrary

\n
data MyData = I Int | B Bool\n\ninstance Arbitrary MyData where\n  arbitrary = do {\n     frequency [(1, return (I 1)),\n                (1, return (choose((B True), (B False))))]\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

然而,我得到了(可以理解的)错误:

\n
Couldn't match type \xe2\x80\x98Gen MyData\xe2\x80\x99 with \xe2\x80\x98MyData\xe2\x80\x99\n      Expected type: Gen MyData\n        Actual type: Gen (Gen MyData)\n
Run Code Online (Sandbox Code Playgroud)\n

我怎样才能实现这一目标?另外,I 1我想返回I一个随机的而不是 () Int。然而,使用该arbitrary函数而不是1会导致相同的错误。

\n

haskell quickcheck

3
推荐指数
2
解决办法
268
查看次数

标签 统计

haskell ×1

quickcheck ×1