我有这个Haskell脚本:
prime :: Integer -> Bool
prime 1 = False
prime n = [ x | x <- [2..n-1], n `mod` x == 0 ] == []
最后一行中的第一个x
代表什么?为什么我可以用“String”替换它,整个功能仍然有效?
答案 0 :(得分:6)
列表推导中|
之前的部分是一个表达式,用于生成结果列表的每个元素。
在这种情况下,该函数仅关注列表推导是否导致空列表,因此列表的元素无关紧要。您可以将()
,x
,1
或任何实现Eq
的类型的值放在那里。如果您使用null
代替== []
来检查空虚,则可能是任何内容,甚至是undefined
。