<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 29, 2015 at 1:27 PM, Janis Voigtländer <span dir="ltr"><<a href="mailto:janis.voigtlaender@gmail.com" target="_blank">janis.voigtlaender@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre-wrap">Are you sure you have read and respected all the forall-quantifiers in there?<br><br></span></div><span style="white-space:pre-wrap">The statement "</span><span style="white-space:pre-wrap">for all associative f and all lists xs, it holds that h f xs = foldl1 f xs" is *not* equivalent to the statement "</span><span style="white-space:pre-wrap">for all f and all lists xs, it holds that h f xs = foldl1 f xs". The latter statement is equivalent (via eta-contractions) to "</span><span style="white-space:pre-wrap">h = foldl", but the former isn't.<br><br></span></div><span style="white-space:pre-wrap">Do I have to give a specific h to make this clearer? One which satisfies the first statement but is not equivalent to foldl or foldr. Actually, one was given already earlier in the conversation, to exactly the purpose of illuminating this whole point.</span></blockquote></div><br></div><div class="gmail_extra">So you're saying:<br><br>"The property of the fold in question is that it's equivalent to a fold (left or right, it's all one) __on the space of associative binary operators.__"<br><br>That's not too far off is it?<br><br>I deliberately abbreviated for three reasons.<br><br>The first is that restriction to associative binary operators is inherent in the original question. Recall: "Is there a name for a fold that promises to call a function such that 
only an associative function will always return the same result."<br><br>The second reason is that it summarizes the result into an easy take-away.<br><br>Lastly, the fuller answer can be worked out once we throw a glance at the obviousness that foldl and foldr cannot be equal on the space of non-associative binary operators.<br><br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">-- Kim-Ee</div></div>
</div></div>