-1
您好,我一直在试图回答一个问题,该问题涉及检查数字是否是质数。我想出了下面这段代码:haskell中的模式匹配错误
isitprime :: Int->Bool
isitprime n
| n<=1 = False
| otherwise = isitprime2 n (n-1)
isitprime2 :: Int->Int->Bool
isitprime2 x y
| y > 1 && x `mod` y == 0 = False
| y == 1 && x `mod` y == 0 = True
当winhugs运行,它会返回一个错误说“模式匹配失败:isitprime2一个A-1”的任何值大于2
但是它返回对于任何直接乘以2的值,都是错误的,例如isitprime2 2 1返回false,isitprime2 4 2,isitprime2 6 3,isitprime2 10 5等全部返回false。
出了什么问题,为什么?
感谢:d
太棒了!谢谢!! :d – naturesenshi