Skip to content

Instantly share code, notes, and snippets.

@cleichner
Created March 3, 2014 00:29
Show Gist options
  • Save cleichner/9316315 to your computer and use it in GitHub Desktop.
Save cleichner/9316315 to your computer and use it in GitHub Desktop.
import Criterion.Main
prswap [] = []
prswap (a:b:xs) = b:a:prswap xs
prswap' [] = []
prswap' list = reverse (take 2 list) ++ prswap (drop 2 list)
main = defaultMain [ bgroup "prswap" [ bench "prswap [1..1000]" $ whnf prswap [1..1000]
, bench "prswap [1..10000]" $ whnf prswap [1..10000]
, bench "prswap [1..100000]" $ whnf prswap [1..100000]
, bench "prswap [1..1000000]" $ whnf prswap [1..1000000]
, bench "prswap [1..10000000]" $ whnf prswap [1..10000000]
]
, bgroup "prswap'" [ bench "prswap' [1..1000]" $ whnf prswap' [1..1000]
, bench "prswap' [1..10000]" $ whnf prswap' [1..10000]
, bench "prswap' [1..100000]" $ whnf prswap' [1..100000]
, bench "prswap' [1..1000000]" $ whnf prswap' [1..1000000]
, bench "prswap' [1..10000000]" $ whnf prswap' [1..10000000]
]
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment