[Haskell-cafe] ghc has problems with 'zipWith' ?
tpledger at ihug.co.nz
Wed Dec 8 04:38:00 EST 2004
Daniel Fischer wrote:
>I have recently come across the curious phenomenon that ghci is sometimes much
>slower than hugs.
>ms as = zipWith (+) (zipWith (*) as (1:ms as)) (0:1:ms as)
Hugs has(**) a specific optimisation for the case where the left hand
side of the declaration occurs as a subexpression in the right hand side.
You can get a similar benefit under ghci if you share the common
subexpression by hand:
ms' as = let bs = ms' as in
zipWith (+) (zipWith (*) as (1:bs)) (0:1:bs)
(**) I haven't actually seen the code in question, and am repeating
something which was on one of the mailing lists a few years ago. So
please don't treat this as authoritative!
More information about the Haskell-Cafe