User:WillNess

From HaskellWiki
Revision as of 12:16, 6 October 2011 by WillNess (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I'm interested in Haskell.

I like this:

--   inifinte folding idea due to Richard Bird
--   double staged production idea due to Melissa O'Neill
--   tree folding idea Dave Bayer / simplified formulation Will Ness
primes = 2 : g (fix g) 
  where                
    g xs = 3 : gaps 5 (foldi (\(c:cs) -> (c:) . union cs) []
                             [[x*x, x*x+2*x..] | x <- xs])
    gaps k s@(c:t)                                        
       | k < c = k : gaps (k+2) s     -- minus [k,k+2..] (c:t), k<=c
       | True  =     gaps (k+2) t     --   fused to avoid a space leak

fix g = xs where xs = g xs            -- global defn to avoid space leak

foldi is on Tree-like folds page. union and more at Prime numbers.

The math formula for Sieve of Eratosthenes,

where

  . . . or,     :) :) .

Trial division sieve:

If you're put off by self-referentiality, just replace or on the right-hand side of equations with .