在以下初筛中:
primes :: [Integer]
primes = sieve [2..]
where
sieve (p:xs) = p : sieve [x|x <- xs, x `mod` p > 0]
是什么x | x <- xs
意思x `mod` p > 0
?
[ x | x <- xs, x `mod` p > 0]
是由x
s 的元素组成的列表xs
,但只有那些满足x `mod` p > 0
条件的元素(mod
返回第一个数字除以第二个数字后的余数,因此您要求的元素xs
不能被 整除p
)。