我意识到最新版本的GHC(7.10.3)产生的代码比旧版本慢得多.我目前的版本:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.3
Run Code Online (Sandbox Code Playgroud)
我还在本地计算机上安装了另外两个旧版本.
我的测试代码来自这里(collatz1.hs代码):
import Data.Word
import Data.List
import System.Environment
collatzNext :: Word32 -> Word32
collatzNext a = (if even a then a else 3*a+1) `div` 2
-- new code
collatzLen :: Word32 -> Int
collatzLen a0 = lenIterWhile collatzNext (/= 1) a0
lenIterWhile :: (a -> a) -> (a -> Bool) -> a -> Int
lenIterWhile next notDone start = len start 0 where
len …Run Code Online (Sandbox Code Playgroud)