[Haskell-cafe] How to speed things up

Dmitry Vyal akamaus at gmail.com
Thu Apr 28 13:48:28 EDT 2005

Cale Gibbard wrote:
> I'd use a Map in GHC 6.4:
> count xs = toList $ fromListWith (+) (zip xs (repeat 1))
> or a FiniteMap in earlier versions:
> count xs = fmToList $ addListToFM_C (+) emptyFM (zip xs (repeat 1))
> both of these seem to be quite fast.
>  - Cale

Thanks, this is significaly faster than variant with accumArray i've 
used before.

By the way, how to use Unboxed arrays and unsafeAccumArray Greg Buchholz 
mentioned? I can't find them in GHC 6.2 documentation.

And last question:

When I try to compile my program  with -caf-all I get these messages:
% ghc -prof -caf-all mastermind.hs -o mastermind 

/tmp/ghc3338.hc:25: error: redefinition of `Mainmain_CAF_cc_ccs'
/tmp/ghc3338.hc:24: error: `Mainmain_CAF_cc_ccs' previously defined here

If I use -auto-all it works fine.

I use Slackware Linux 10.1 with gcc 3.3.4 and ghc-6.2.2

More information about the Haskell-Cafe mailing list