Вл
Size: a a a
Вл
Вл
Вл
Вл
l
l
NK
Aq
module Main where
import Prelude (Unit, map, mod, show, ($), (*), (+), (/=), (<<<), (<=))
import Data.List.Lazy (all, filter, iterate, length, takeWhile, (:))
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Data.Lazy (defer, force)
primes = defer (\_ -> 2 : 3 : filter isPrime (iterate (_+2) 5))
isPrime x = all (_ /= 0) <<< map (mod x) <<< takeWhile ((_ <= x) <<< (\y -> y*y)) <<< force $ primes
main :: Eff (console::CONSOLE) Unit
main = log <<< show <<< length <<< takeWhile (_ <= 16777216) <<< force $ primes
l
NK
NK
l
Aq
Aq
at
Aq
l
at
at