2015-11-21 3 views
0

В следующем прайм сито:Haskell сито простое число

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 значит?

+1

Просьба найти список справок. Кроме того, mod - это функция Modulo. –

+0

Синтаксис для определения списка - это место, где можно закрыть синтаксис set, который вы использовали бы в математике, поэтому это означает * список всех 'x' в' xs', где '' x 'mod' p> 0'' * – Carsten

+0

Я рекомендую прочитать все http://learnxinyminutes.com/docs/haskell/ для краткого обзора синтаксиса. –

ответ

2

[ x | x <- xs, x `mod` p > 0] список x с из элементов из xs, но только те элементы, которые удовлетворяют условию x `mod` p > 0 (mod возвращает remainder after the first number is divided by the second number, так что вы просите элементов xs, которые не делятся на p).