[Haskell] specification of sum
Chad.Scherrer at pnl.gov
Wed Nov 2 12:05:44 EST 2005
> Surely not... sum is defined by Haskell 98 as:
> sum = foldl (+) 0
> and this is exactly what GHC provides. Furthermore we have
> specialised strict versions for Int and Integer.
I'd been using ghci for testing along the way and getting terrible
results; does the specialization only apply to ghc per se?
Also, Cale, I was thinking about your comment about formal power series,
and I don't see that (+) should not be strict in this case. In
particular, if they are represented as infinite lists, I agree that
zipWith (+) works just fine, though it is strict but lazy.
Here is the strictness:
zipWith (+) undefined [1,2,3] == undefined
zipWith (+) [1,2,3] undefined == undefined
And here is the laziness:
head $ zipWith (+) (1:undefined) (2:undefined) == 3
Or am I missing something?
More information about the Haskell