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 <b@chreekat.net> wrote:On 08/14/2018 02:57 PM, Damian Nadales wrote:
>
>
> On Tue, Aug 14, 2018 at 8:10 PM Vanessa McHale <vanessa.mchale@iohk.io <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 particular I'm modeling the Chimeric ledgers described in this paper https://eprint.iacr.org/2018/262.pdf. In several places I have to
> sum up values in different lists, and as soon as I try this with large 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.
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.