[Haskell-cafe] curious about sum
Daniel Fischer
daniel.is.fischer at web.de
Sat Jun 13 11:41:54 EDT 2009
Am Samstag 13 Juni 2009 17:00:36 schrieb Jochem Berndsen:
> 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).
Well, if you have lazy Peano numbers of any kind, you know that all entries are non-
negative and you needn't evaluate x fully to determine whether it's > 10. Isn't that the
point why one would use lazy numbers at all?
>
> Regards,
More information about the Haskell-Cafe
mailing list