Haskell のコード断片 (2) 素数列挙 primes = map head (iterate sieve [2..]) sieve (p:xs) = [ x | x <- xs, x `mod` p /= 0 ] iterate は Prelude 関数 iterate f x = x : iterate f (f x) iterate (1+) 0 ⇒ [0,1+0,1+1+0, ..] [0, 1 , 2 , ...] iterate sieve [2..] は? map head (iterate sieve [2..]) は?