【发布时间】:2012-04-27 14:42:50
【问题描述】:
我有一个从 Network.HTTP 获取 ResponseCode 的函数。为了使用 QuickCheck 对其进行测试,我想为 ResponseCode 编写一个 Arbitrary 的实例。 (如果您不知道,ResponseCode 只是该库中整数的三倍:type ResponseCode = (Int, Int, Int))。
所以我写了这样的东西:
instance Arbitrary ResponseCode where
arbitrary = triple ( elements [1..6] )
where triple f = (f, f, f)
首先,GHC 抱怨我使用类型的方式不是标准的 haskell,所以我必须使用一些编译器标志(这不是我真正想要的,因为我觉得必须有一个简单的解决方案没有标志的简单问题)。
其次,我的任意函数类型错误,这很明显。但是后来我真的不知道如何编写一个返回三元组的函数,其中随机 Int 范围为 1-6。
如果有人可以在这里帮助我,我将不胜感激。
谢谢。
【问题讨论】:
标签: haskell quickcheck