User:WillNess
From HaskellWiki
(Difference between revisions)
(var rename for uniformity) 

(3 intermediate revisions by one user not shown) 
Revision as of 09:30, 6 August 2013
A perpetual Haskell newbie. I like this oneliner:
 infinite folding idea due to Richard Bird  double staged production idea due to Melissa O'Neill  tree folding idea Dave Bayer / improved tree structure  Heinrich Apfelmus / simplified formulation Will Ness 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 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.