-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