Why is this Haskell expression so slow?
问题 I'm working on Project Euler Problem 14. Here's my solution. import Data.List collatzLength :: Int->Int collatzLength 1 = 1 collatzLength n | odd n = 1 + collatzLength (3 * n + 1) | even n = 1 + collatzLength (n `quot` 2) maxTuple :: (Int, Int)->(Int, Int)->Ordering maxTuple (x1, x2) (y1, y2) | x1 > y1 = GT | x1 < y1 = LT | otherwise = EQ I'm running the following out of GHCi maximumBy maxTuple [(collatzLength x, x) | x <- [1..1000000]] I know that if Haskell evaluated strictly, the time on