[Haskell-cafe] curious about sum
Henning Thielemann
lemming at henning-thielemann.de
Tue Jun 16 07:10:20 EDT 2009
Jochem Berndsen schrieb:
> 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).
http://hackage.haskell.org/packages/archive/non-negative/0.0.5/doc/html/Numeric-NonNegative-Chunky.html
More information about the Haskell-Cafe
mailing list