Haskell 使用2个选项在自定义数据类型上生成选择
我正在努力实现一些非常简单的事情。 我有以下数据类型:Haskell 使用2个选项在自定义数据类型上生成选择,haskell,quickcheck,Haskell,Quickcheck,我正在努力实现一些非常简单的事情。 我有以下数据类型: import Test.QuickCheck import System.Random data Letter = G | B deriving(Show, Eq, Bounded) arbitraryLetter :: Gen Letter arbitraryLetter = choose (G,B) 我正在编译并得到这个错误 • No instance for (Random Letter) arising from a u
import Test.QuickCheck
import System.Random
data Letter = G | B deriving(Show, Eq, Bounded)
arbitraryLetter :: Gen Letter
arbitraryLetter = choose (G,B)
我正在编译并得到这个错误
• No instance for (Random Letter) arising from a use of ‘choose’
• In the expression: choose (G, B)
In an equation for ‘arbitraryLetter’:
arbitraryLetter = choose (G, B)
为什么这不起作用?
我希望能够在此数据类型上使用快速检查。
choose
具有类型Random a=>(a,a)->Gen a
,因此choose(G,B)
需要一个Random
实例用于字母类型。如果要从一组值创建生成器,可以使用元素
:
arbitraryLetter :: Gen Letter
arbitraryLetter = elements [G, B]
谢谢,我如何生成1并打印到控制台?我尝试运行arbitraryLetter,但出现了一个错误:•在交互式GHCi命令的stmt中使用“print”时没有出现(Show(Gen Letter))的实例:printit@Eyzuky-您可以在ghci中使用sample
:sample arbityletter
。