0
在下列素篩:哈斯克爾篩素數
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
是什麼意思?
在下列素篩:哈斯克爾篩素數
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]
是從xs
由元素組成x
個列表,但只有滿足條件x `mod` p > 0
這些元素(mod
返回remainder after the first number is divided by the second number,所以你問是不是整除p
的xs
元素)。
請搜索列表理解。另外,mod是Modulo函數。 –
list-comprehension語法是接近你在數學中使用的set語法的地方 - 所以它意味着*'xs mod' p> 0''中的所有'x'的列表* – Carsten
我建議閱讀http://learnxinyminutes.com/docs/haskell/中的所有語法以快速瀏覽語法。 –