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.