Currently, the reduce and mapreduce implementations are left-associative, but this is not documented in the manual. For accuracy reasons (#4039) and possibly for future performance reasons (in parallel implementations), left-associativity is not necessarily the best choice. My suggestion is:
- Explicitly document that the associativity of these functions is implementation-dependent and unspecified.
- Provide
reduce_left and mapreduce_left functions that are documented to be left-associative, for applications that need this (e.g. Monads.jl).
cc: @StefanKarpinski, @pao
Currently, the
reduceandmapreduceimplementations are left-associative, but this is not documented in the manual. For accuracy reasons (#4039) and possibly for future performance reasons (in parallel implementations), left-associativity is not necessarily the best choice. My suggestion is:reduce_leftandmapreduce_leftfunctions that are documented to be left-associative, for applications that need this (e.g. Monads.jl).cc: @StefanKarpinski, @pao