on master help sign in
Make sure we use the result
eb52d59Bryan O'Sullivan
tests/benchmarks/ReadNumbers.hs+4−3
@@ -1,3 +1,4 @@
1+{-# LANGUAGE BangPatterns #-}
1import Debug.Trace
2import Debug.Trace
2import Control.Monad
3import Control.Monad
3import Data.List
4import Data.List
@@ -33,15 +34,15 @@ paranoid = foldr go [] . T.lines
33 else xs
34 else xs
34
35
35read2 :: Num a => T.Lexer a -> T.Text -> a
36read2 :: Num a => T.Lexer a -> T.Text -> a
36−read2 reader = go
37+read2 reader = go 0
37 where
38 where
38− go t
39+ go !i t
39 | T.null t = 0
40 | T.null t = 0
40 | otherwise = case reader t of
41 | otherwise = case reader t of
41 Left err -> error err
42 Left err -> error err
42 Right (n,t') -> case T.uncons t' of
43 Right (n,t') -> case T.uncons t' of
43 Nothing -> n
44 Nothing -> n
44− Just (_,t'') -> go t''
45+ Just (_,t'') -> go (n+i) t''
45
46
46main = do
47main = do
47 args <- getArgs
48 args <- getArgs