Deniz Dogan wrote:
2009/6/13 Jochem Berndsen
: 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@functor.nl GPG: 0xE6FABFAB