Mar*_*ark 4 haskell quickcheck
有谁知道如何使用QuickCheck在Haskell中定义生成器,以便仅一次选择所选元素?
我已经意识到我可能需要一个“ Gen(也许是肯定的)”生成器,但是当然,它会重复生成数字。我想要这样,以便选择的数字不会重复。在返回数字的情况下,我想只返回,而在所有随机数都用完的情况下,我要不返回任何信息。
谢谢,
标记
你不能 看一下的定义Gen。它无法对到目前为止所选择的内容进行任何陈述。给定相同的随机发生器和大小限制,它必须始终产生相同的结果。但是,您可以编写一个不重复的值列表。一个简单(但有些天真)的东西就是这样。Eq a => Gen [a]
uniques :: Eq a => Gen a -> Gen [a]
uniques gen = fmap nub $ listOf gen
Run Code Online (Sandbox Code Playgroud)