
Hmm. How are you compiling it? Using bytestring 0.9.1.x ? Should be fast, http://shootout.alioth.debian.org/gp4/benchmark.php?test=sumcol&lang=all Assuming you're turning on optimisations ( ghc -O2 ) -- Don 666wman:
the problem is that using readInt is actually _as slow_, at least using my test script :-((
On Tue, Oct 7, 2008 at 5:12 AM, Don Stewart <[1]dons@galois.com> wrote:
666wman: > a slight modification to compile it : > > change: > where sumFile = sum . map read . L.words > to : > where sumFile = sum . map (read . L.unpack) . L.words > > but it's actually _slower_ than the non-bytestring version.
Never unpack a bytestring.
import qualified Data.ByteString.Lazy.Char8 as S
main = print . go 0 =<< S.getContents where go n s = case S.readInt s of Nothing -> n Just (k,t) -> go (n+k) (S.tail t)
Assuming you're reading int, integers or doubles.
References
Visible links 1. mailto:dons@galois.com