User:WillNess
From HaskellWiki
(Difference between revisions)
m 

(One intermediate revision by one user not shown) 
Latest revision as of 11:45, 8 April 2015
I like this oneliner:
 infinite folding due to Richard Bird  double staged primes production due to Melissa O'Neill  tree folding idea Heinrich Apfelmus / Dave Bayer primes = 2 : _Y ((3:) . gaps 5 . foldi (\(x:xs) > (x:) . union xs) [] . map (\p> [p*p, p*p+2*p..])) _Y g = g (_Y g)  multistage production via Y combinator gaps k s@(c:t)  == minus [k,k+2..] (c:t), k<=c,  k < c = k : gaps (k+2) s  fused for better performance  otherwise = gaps (k+2) t  k==c
foldi
is on Treelike folds page. union
and more at Prime numbers.
The constructive definition of primes is the Sieve of Eratosthenes:
using standard definition
 . . . or, .
Trial division sieve is:
If you're put off by selfreferentiality, just replace or on the righthand side of equations with , but even ancient Greeks knew better.