
19 Dec
2014
19 Dec
'14
3:52 a.m.
Hi, Following code is to get a list of primes. Now it is hard for me to understand funB. I mean I can see what it does. But I cannot see the detailed process by every language part. import Control.Monad isPrime :: Integer -> Bool isPrime i = ap funA funB i funA :: Integer -> [Integer] -> Bool funA x xs = all (\x' -> (mod x x') /= 0) xs funB :: Integer -> [Integer] funB = flip takeWhile primes . ( . join (*)) . flip (<=) primes :: [Integer] primes = 2 : filter isPrime [3, 5 ..] main :: IO () main = print $ take 10 primes -- 竹密岂妨流水过 山高哪阻野云飞 And for G+, please use magiclouds#gmail.com.