Haskell中的isPrime函数正在生成非穷尽模式错误。怎么了?

时间:2019-10-04 15:27:01

标签: haskell

我在Haskell中编写了isPrime函数,并且不断收到诸如“函数isPrime中的非穷尽模式”之类的错误。我没有考虑什么情况?

isPrime :: Int -> Bool
isPrime 1 = False 
isPrime 2 = True
isPrime n = (length [x | x<-[2 .. n-1],  mod n x == 0]) > 0 = False 
| otherwise = True 

1 个答案:

答案 0 :(得分:0)

代表@chi发帖

isPrime :: Int -> Bool
isPrime 1 = False 
isPrime 2 = True
isPrime n
  | (length [x | x<-[2 .. n-1],  mod n x == 0]) > 0 = False 
  | otherwise = True 


main = do
  print (isPrime 7)
  print (isPrime 8)
  print (isPrime 9)
  print (isPrime 10)
  print (isPrime 11)
  print (isPrime 12)

标准输出

True
False
False
False
True
False