【发布时间】:2018-08-01 22:12:34
【问题描述】:
我在 Kata 的随机测试部分中有这个工作代码:
it "handles randoms " $
property $ \x y -> updateHealth x y == if y > x then 0 else x-y
但是我希望函数签名使用 Num,但是当我这样做时,我得到了一个错误,因为(我相信)它不知道如何生成 Num(因为它不知道要制作什么样的 Num? )。我只是将类型设置为 Double 作为解决方法。
但是,当您的函数签名使用 Nums 时,有没有办法使用 Quickcheck?生成随机Int,或者Integer,Float,Double,是不是一定要专门告诉它?
【问题讨论】:
-
Num不是类型;它是一个类型类,即类型的集合。因此,您必须指定要使用的特定类型。没有办法解决这个问题,因为编译器无法选择要使用的Num的特定实例(在大多数情况下;请参阅:单态限制)
标签: haskell quickcheck