<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Yves Par&egrave;s:
    <blockquote
cite="mid:CACqaG6x1d_MTYmm_BsESASZa9FRFXRLDKi-fQpSuzdmQ+1ONPA@mail.gmail.com"
      type="cite">if <b>f</b> is lazy in its second argument, then use
      foldr. Everything is lazy, you build a very small thunk since
      nothing is evaluated.<br>
      In the rare cases where<b> f </b>is (also) lazy in its first
      argument, you can use foldl.</blockquote>
    ...<br>
    I have the impression that this is not the most useful advice
    possible.<br>
    <br>
    1. "Nothing is evaluated"?? Look, foldr is designed to consume
    incrementally the list argument, and to produce, also incrementally
    the result ; it may stop in the middle if f is lazy, but if you
    organize badly your program, you will pollute your memory. You might
    wish to process the whole of the list as fast as possible, and then
    foldr may be dangerous. You may build a veeery big thunk before its
    reduction.<br>
    <br>
    2. This is not only the issue: "f x z" versus "f z x". foldl is
    iterative (tail-recursive) and the reduction proceeds until all the
    source list is consumed. foldl works better with strict functions,
    not lazy.<br>
    <br>
    (of course, unless I am mistaken...)<br>
    ==<br>
    <br>
    In general, sorry for the cynism, but when I read:<br>
    <br>
    "There are times when I would like to find
    out which to use in the quickest way possible, rather than reading a
    long explanation of why each one behaves the way it does" of David
    Fox, I compare it with a question of a young army officer, addressed
    to his elders:<br>
    <br>
    "Tell me how to win the war in the quickest way possible, rather
    than boring me with the explanations behind all those complicated
    strategies".<br>
    <br>
    Jerzy Karczmarczuk<br>
    Caen, Normandy, France<br>
    <br>
    (William the Conqueror, who lived here, had a reputation of a
    strategist who tried to understand his enemies. 350 years later, the
    French didn't try to understand anything, they just wanted to win
    the battle of Azincourt as quick as possible).<br>
    <br>
  </body>
</html>