diff options
Diffstat (limited to 'testsuite/tests/perf/should_run/T149_B.hs')
-rw-r--r-- | testsuite/tests/perf/should_run/T149_B.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/testsuite/tests/perf/should_run/T149_B.hs b/testsuite/tests/perf/should_run/T149_B.hs new file mode 100644 index 0000000000..fcc87cdf55 --- /dev/null +++ b/testsuite/tests/perf/should_run/T149_B.hs @@ -0,0 +1,26 @@ +module Main (main) where + +-- See Trac #149 + +-- Curently (with GHC 7.0) the CSE works, just, +-- but it's delicate. + + +import System.CPUTime + +main :: IO () +main = print $ playerMostOccur2 [1..m] + +m :: Int +m = 22 + +playerMostOccur2 :: [Int] -> Int +playerMostOccur2 [a] = a +playerMostOccur2 (x:xs) + | numOccur x (x:xs) > numOccur pmo xs = x + | otherwise = pmo + where pmo = playerMostOccur2 xs + +numOccur :: Int -> [Int] -> Int +numOccur i is = length $ filter (i ==) is + |