[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