[Haskell-cafe] how to make haskell faster than python at finding primes?

Alex Jacobson alex at alexjacobson.com
Mon Aug 6 04:22:26 EDT 2007


Thought perhaps the problem is that modcount is just a slower algorithm. 
  ... nevermind.  Thanks.
-Alex-

Alex Jacobson wrote:
> The challenge was the implement the modcount algorithm not to calculate 
> primes per se.
> (see e.g. http://jjinux.blogspot.com/2005/11/io-comparison.html).
> 
> -Alex-
> 
> Donald Bruce Stewart wrote:
>> alex:
>>> This implementation of calculating 10000 primes (compiled with GHC 
>>> -O2) is 25% slower than the naive python implementation.  Shouldn't 
>>> it be faster?  Am I doing something obviously stupid?
>>
>> Why not just:
>>
>>     primes         = sieve [2..]
>>
>>     sieve (p : xs) = p : sieve [x | x <- xs, x `mod` p > 0]
>>
>>     main           = print (take 1000 primes)
>>
>> That's super naive, and seems to be around 5x faster than the code you 
>> were
>> trying. (So make sure you're doing the same thing as the python version)
>>     -- Don 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list