了解Prime测试

时间:2013-04-23 12:21:24

标签: haskell functional-programming primes

我有这个Haskell脚本:

prime :: Integer -> Bool    
prime 1 = False
prime n = [ x | x <- [2..n-1], n `mod` x == 0 ] == []

最后一行中的第一个x代表什么?为什么我可以用“String”替换它,整个功能仍然有效?

1 个答案:

答案 0 :(得分:6)

列表推导中|之前的部分是一个表达式,用于生成结果列表的每个元素。

在这种情况下,该函数仅关注列表推导是否导致空列表,因此列表的元素无关紧要。您可以将()x1或任何实现Eq的类型的值放在那里。如果您使用null代替== []来检查空虚,则可能是任何内容,甚至是undefined