Please stay on topic. This thread is strictly about the naming of foldl and 
foldr, nothing else.

torsdag 20. oktober 2016 19.24.47 UTC+2 skrev Ambrose Laing følgende:
>
> One could define fold as a generic operation that replaces the empty list 
> with a constant (for example an identity element) and replaces the "cons" 
> operator with a function that takes an element and a partial result.  This 
> is consistent with other ways to define generalized folds over recursive 
> data structures.  For example for trees you can replace the leaf node with 
> a constant and replace the internal node with a binary function.  The key 
> idea here is that fold directly reflects the natural structure of the 
> underlying data structure.  ie, the way you would draw a picture of the 
> underlying data structure is exactly the picture of the execution order. 
>  If we are consistent with this, then fold will be defined for lists to be 
> the same as foldRight for lists.  For more detailed exposition to motivate 
> this definition, see the paper "Merging Monads and Folds for Functional 
> Programming", by Meijer and Jeuring. 
> <http://dspace.library.uu.nl/bitstream/handle/1874/20910/jeuring_95_mergingmonads.pdf>
>
> One could also define a fold (as scala does) to be not-necessarily-linear 
> -- the execution order is unspecified and left up to the implementer.  So 
> in scala, a fold can split up a list into many pieces (sublists) and 
> process the sublists in parallel, and then fold them up to obtain the final 
> answer.  In this case, it is not necessaria foldLeft or a foldRight.  It 
> could actually be a fold-from-the-middle or even 
> fold-from-many-places-in-the-middle.  In order to make sure the answer is 
> well-defined, the folding operator is required to be associative.
>
> IMO it would be a good idea to avoid confusion with these alternative 
> semantics by not reusing the name "fold" at all, or else adopting one of 
> the conventional meanings (if we can agree what the most common meaning is).
>
> On Thursday, October 20, 2016 at 11:32:12 AM UTC-4, Max Goldstein wrote:
>>
>> Normally I'm opposed to syntax or name changes. But I think this or some 
>> variation is a good idea. (Maybe foldl becomes fold, since it's usually the 
>> one you want.)
>>
>> That said, it's all subject to Evan's approval. 
>>
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to