在下面的主筛中:
primes :: [Integer]primes = sieve [2..] where sieve (p:xs) = p : sieve [x|x <- xs, x `mod` p > 0]
primes :: [Integer]
primes = sieve [2..]
where
sieve (p:xs) = p : sieve [x|x <- xs, x `mod` p > 0]
x | x <- xs和xmodp > 0是什么意思?
x | x <- xs
x
p > 0
qij5mzcb1#
[ x | x <- xs, xmodp > 0]是由xs中的元素组成的x列表,但仅限于满足xmodp > 0条件的元素(mod返回第一个数字除以第二个数字后的余数,因此您需要xs中不能被p整除的元素)。
[ x | x <- xs, x
p > 0]
xs
mod
p
1条答案
按热度按时间qij5mzcb1#
[ x | x <- xs, x
modp > 0]
是由xs
中的元素组成的x
列表,但仅限于满足x
modp > 0
条件的元素(mod
返回第一个数字除以第二个数字后的余数,因此您需要xs
中不能被p
整除的元素)。