How to test for efficiency in Haskell
To do so, you can use the
:set +s command in GHCi.
ghci> :set +s
You won't see any success message. Now you can test it:
ghci> let filterPrime (p:xs) = p : filterPrime [x | x <- xs, x `mod` p /= 0] ghci> primes = filterPrime [2..] ghci> :set +s ghci> take 10 primes [2,3,5,7,11,13,17,19,23,29] (0.01 secs, 514,216 bytes)
When you're tracking the time of fast evaluations like the one above, you should evaluate the expression a couple of times and take the mean of all time values. Sometimes GHCi needs a bit time to power up, that's why an evalutation could take longer the first time.
This method works also with functions you've defined in an own .hs-file. You can remove the time evaluation by using
Tip: If you're interested in prime number algorithms, check out the Sieve of Eratosthenes.