diff options
Diffstat (limited to 'testsuite/tests/perf/should_run/T149_A.hs')
-rw-r--r-- | testsuite/tests/perf/should_run/T149_A.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/testsuite/tests/perf/should_run/T149_A.hs b/testsuite/tests/perf/should_run/T149_A.hs new file mode 100644 index 0000000000..dd745460c0 --- /dev/null +++ b/testsuite/tests/perf/should_run/T149_A.hs @@ -0,0 +1,25 @@ +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 $ playerMostOccur1 [1..m] + +m :: Int +m = 22 + +playerMostOccur1 :: [Int] -> Int +playerMostOccur1 [a] = a +playerMostOccur1 (x:xs) + | numOccur x (x:xs) > numOccur (playerMostOccur1 xs) xs = x + | otherwise = playerMostOccur1 xs + +numOccur :: Int -> [Int] -> Int +numOccur i is = length $ filter (i ==) is + |