
Damian, thank you for this question, The discussion was thought-provoking for me. Going back to your original inquiry, by the way, I've just noticed this prelude where `sum` and `product` are strict: https://github.com/serokell/universum Bryan, I still fail to see (in this thread also) any rationale for lazy `sum`. I looked at this2014 Reddit thread, and it seems that not only I am puzzled: https://www.reddit.com/r/haskell/comments/2agxcb/why_is_sum_lazy/ There is also an opinion (from quite authoritative source, may I add) that `foldl` should be strict, not just `sum`: http://www.well-typed.com/blog/90/ I wonder what does libraries committee think about all that. One way to find… https://mail.haskell.org/cgi-bin/mailman/listinfo/libraries -- Best, Artem On Tue, 14 Aug 2018 at 22:37 Bryan Richter wrote:
On 08/14/2018 02:57 PM, Damian Nadales wrote:
On Tue, Aug 14, 2018 at 8:10 PM Vanessa McHale
mailto:vanessa.mchale@iohk.io> wrote:
Yes, that was what I was never quite clear on. What is your *actual
problem, in context*, not the problem you think you have because you read elsewhere that foldl' is more efficient?
The problem I have is that sum consumes huge amount of memory. In
sum up values in different lists, and as soon as I try this with large
particular I'm modeling the Chimeric ledgers described in this paper https://eprint.iacr.org/2018/262.pdf. In several places I have to lists the memory usage blows up. So that's my concrete scenario.
In view of this, I though, "I can write this replacing `sum` by `foldl'
(+) 0` but wouldn't be nice if this function was defined already somewhere else?" That's it.
Please ignore this if it is a silly question, and my apologies in
advance.
I think your question is not silly, and quite reasonable. I think that giving more context up front, however, would have helped people understand what your were actually asking. Based solely on what you wrote, you might have been someone who was summing [1..10] for the first time ever and looking for that hypothetical foldl/foldl' analogue, like Vanessa said. :) Being specific helps.
Having said all that, I am also surprised that `sum [1..100000000]` blows up! (But now I see others are responding with rationale for that.)
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.