Fwd: [Haskell-cafe] curious about sum

Once more I forgot to send my messages to the haskell cafe list. All the
rest of the list which I´m suscribed to, send the mail replies to the list
automatically, but this doesn´t. Please, can this be changed?.
---------- Forwarded message ----------
From: Alberto G. Corona
Prelude> let strictplus x y= let z=x +y in z `seq` z; sum1= foldr
*** Exception: stack overflow I suppose that strictplus is strict, so the garbage collector would free
strictplus 0 in sum1[0..1000000] the consumed part of the list.
Then, why the stack overflow? 2009/6/13 Deniz Dogan
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.
-- Deniz Dogan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Alberto G. Corona wrote:
Once more I forgot to send my messages to the haskell cafe list. All the rest of the list which I´m suscribed to, send the mail replies to the list automatically, but this doesn´t. Please, can this be changed?.
This comes up every so often, but I would be against this. Your e-mail client should support mailing lists.
this version of foldl IS strict:
foldlStrict f z0 xs0 = lgo z0 xs0 where lgo z [] = z lgo z (x:xs) =let t= f z x in t `seq` lgo t xs
main= print $ foldlStrict (+) 0 [1..1000000] 500000500000
so the garbage collector do the job in freeing the consumed part of the list
This is correct; the function you defined is equivalent to foldl' in Data.List, if I'm not mistaken. Regards, -- Jochem Berndsen | jochem@functor.nl GPG: 0xE6FABFAB

On Sun, Jun 14, 2009 at 21:23, Jochem Berndsen
Alberto G. Corona wrote:
Once more I forgot to send my messages to the haskell cafe list. All the rest of the list which I� suscribed to, send the mail replies to the list automatically, but this doesn��. Please, can this be changed?.
This comes up every so often, but I would be against this. Your e-mail client should support mailing lists.
This list does not fill out the Reply-To header. Many other lists do. I am all for adding it, if there's no specific reason not to. Thomas

Again: what if somebody wants to answer to the original author privately? It's easier to just use "Reply" for private answers and "Reply all" for list answers. Thomas ten Cate wrote on 15.06.2009 11:18:
On Sun, Jun 14, 2009 at 21:23, Jochem Berndsen
wrote: Alberto G. Corona wrote:
Once more I forgot to send my messages to the haskell cafe list. All the rest of the list which I� suscribed to, send the mail replies to the list automatically, but this doesn��. Please, can this be changed?. This comes up every so often, but I would be against this. Your e-mail client should support mailing lists.
This list does not fill out the Reply-To header. Many other lists do. I am all for adding it, if there's no specific reason not to.
Thomas _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
Alberto G. Corona
-
Jochem Berndsen
-
Miguel Mitrofanov
-
Thomas ten Cate