I can think of a few properties that folds can honor:

1. Promises to call f on all data (does not have any guarantees on order)
2. Promises to call f on all data in order (like a left fold)
3. Promises to call f "associatively" (perhaps can be formalized as an in order break down of the data into tree structures)

I'm assuming at least #1 has a well known name (something completeness?)

On Fri, Oct 23, 2015 at 11:49 AM, Tom Ellis <tom-lists-haskell-cafe-2013@jaguarpaw.co.uk> wrote:
On Fri, Oct 23, 2015 at 11:45:13AM -0400, Charles Durham wrote:
> Let's say you have a function "thisFold :: (a -> a -> a) -> [a] -> a"
>
> and it says that the function 'f' passed in must be associative.
>
> Then it goes on to use f in "thisFold f [0,1,2]" like "f (1 (f 0 2))".
> Obviously f is still associative, but 'thisFold' did not call f
> 'associatively' on the data. My question is if there is a name for what
> property this broke by not calling f 'associatively'.
>
> Does that make sense?

I don't think it makes sense.  You're asking whether there's a *name* for
the property it broke, but is there even a property it broke at all?  If so,
can you write the property down (without naming it)?

Tom
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe