次のプライムシーブでは:
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
の要素で構成される のリストですがxs
、条件を満たす要素のみx `mod` p > 0
です (最初の数値を 2 番目の数値で割った後の剰余をmod
返すため、で割り切れないの要素を求めています)。xs
p