Difference between revisions of "User:WillNess"
From HaskellWiki
m 

Line 1:  Line 1:  
−  +  I like ''[http://ideone.com/qpnqe this oneliner]'': 

<haskell> 
<haskell> 

−   infinite folding 
+   infinite folding due to Richard Bird 
−   double staged 
+   double staged primes production due to Melissa O'Neill 
−   tree folding idea 
+   tree folding idea Heinrich Apfelmus / Dave Bayer 
−   Heinrich Apfelmus / simplified formulation Will Ness 

primes = 2 : _Y ((3:) . gaps 5 
primes = 2 : _Y ((3:) . gaps 5 

. foldi (\(x:xs) > (x:) . union xs) [] 
. foldi (\(x:xs) > (x:) . union xs) [] 

. map (\p> [p*p, p*p+2*p..])) 
. map (\p> [p*p, p*p+2*p..])) 

−  _Y g = g (_Y g)  multistage production 
+  _Y g = g (_Y g)  multistage production via Y combinator 
gaps k s@(c:t)  == minus [k,k+2..] (c:t), k<=c, 
gaps k s@(c:t)  == minus [k,k+2..] (c:t), k<=c, 

Line 22:  Line 22:  
::::<math>\textstyle\mathbb{S} = \mathbb{N}_{2} \setminus \bigcup_{p\in \mathbb{S}} \{p\,q:q \in \mathbb{N}_{p}\}</math> 
::::<math>\textstyle\mathbb{S} = \mathbb{N}_{2} \setminus \bigcup_{p\in \mathbb{S}} \{p\,q:q \in \mathbb{N}_{p}\}</math> 

using standard definition 
using standard definition 

−  ::::<math>\textstyle\mathbb{N}_{k} = \{ n \in \mathbb{N} : n \geq k \}</math>   . . . or,  <math>\textstyle\mathbb{N}_{k} = \{k\} \bigcup \mathbb{N}_{k+1}</math> 
+  ::::<math>\textstyle\mathbb{N}_{k} = \{ n \in \mathbb{N} : n \geq k \}</math>   . . . or,  <math>\textstyle\mathbb{N}_{k} = \{k\} \bigcup \mathbb{N}_{k+1}</math> . 
Trial division sieve is: 
Trial division sieve is: 
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.