[Haskell-cafe] curious about sum

Jochem Berndsen jochem at functor.nl
Sat Jun 13 11:00:36 EDT 2009


Deniz Dogan wrote:
> 2009/6/13 Jochem Berndsen <jochem at functor.nl>:
>> Keith Sheppard wrote:
>>> Is there any reason that sum isn't strict? I can't think of any case
>>> where that is a good thing.
>>>
>>> Prelude> sum [0 .. 1000000]
>>> *** Exception: stack overflow
>> It is useful if the (+) is nonstrict; although I cannot think of any
>> useful mathematical structure where (+) would be nonstrict.
> 
> I remember needing a non-strict sum at least once, but I do not
> remember the exact application. But imagine having a (very) long list
> of numbers and you want to do A if the sum exceeds a small number,
> otherwise B.
> 
> if sum [0..100000] > 10 then A else B
> 
> However, this idea didn't work, because of strictness.

You can only do such things if you know that all entries of your list
are nonnegative. That requires a custom solution anyway (not to mention
the fact that to determine whether x > 10 or not, we need to explicitly
compute x).

Regards,

-- 
Jochem Berndsen | jochem at functor.nl
GPG: 0xE6FABFAB


More information about the Haskell-Cafe mailing list