我正在使用 quickcheck 编写一个简单的测试。
import Test.QuickCheck
f :: Int -> Int
f x
| x < 0 = (-x)
| otherwise = x
main = do
putStrLn "Testing"
quickCheck ((\x -> ((f x) >= 0)) :: Int -> Bool)
每当我通过 运行它时$ runhaskell test.hs
,我都会看到两种不同的结果之一。要么我得到: 测试 +++ 好的,通过了 100 次测试。或者:我没有得到任何输出,程序终止。我无法对这种行为进行推理。
这是在 Quickcheck 2.5.1.1 和 ghc 7.4.2 上。