Haskell快速检查问题

Haskell快速检查问题,haskell,quickcheck,Haskell,Quickcheck,我正在使用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

我正在使用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上。

您不需要标签;无论如何都不识别那些语言声明。只需使用代码编辑器窗口上方的{}按钮将代码缩进四个空格。啊,谢谢!有一段时间没有使用StackOverflow。无法使用ghc 7.4.1和quickcheck 2进行复制。5@NormanRamsey,谢谢你尝试!可能值得尝试运行runhaskell test.hs;echo$?。这将为您提供runhaskell的退出代码。如果为非零,则表示错误;如果大于127,则表示runhaskell被信号杀死。