Haskell快速检查问题
我正在使用quickcheck编写一个简单的测试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
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被信号杀死。