1

我有这个 Haskell 脚本:

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

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

4

1 回答 1

6

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

在这种情况下,该函数只关心列表推导是否导致空列表,因此列表的元素无关紧要。您可以将(),x1任何类型的值放在那里实现Eq。如果您使用null而不是== []检查空虚,它可能是任何东西,甚至是undefined.

于 2013-04-23T12:53:27.570 回答