Personally I like the behaviour of ranges when the end of range is smaller than the first. Can you elaborate on why it's confusing?
The problem with Enum.reverse is that it returns a list instead of a range so Enum.reverse(1..1000000) would return a list allocated with a million elements. You are correct that it would be a backwards incompatible change so if we do decide to change it it can only be finalized in Elixir 2.0. On Sun, Dec 25, 2016 at 11:28 AM, miwee <[email protected]> wrote: > TLDR: it's a nit picking and may introduce breaking changes without > possibly any significant gain, except conceptual clarity and explicitness. > > iex(27)> n = 4 > 4 > iex(28)> 1..n |> Enum.into([]) > [1, 2, 3, 4] > iex(29)> n = 1 > 1 > iex(30)> 1..n |> Enum.into([]) > [1] > iex(31)> n = 0 > 0 > iex(32)> 1..n |> Enum.into([]) > [1, 0] > > The result for n = 0, is little bit magical, as I was expecting it to > return [], but instead it auto-magically detected that end is less than > start and hence it counted decrementally. I think it creates confusion, > particularly when both start and end are not constants like the above case > given. > > So does it make sense to restrict the behavior of .. operator to always > count incrementally. For the case of decremental counting Enum.reverse can > be used. In that sense 1..4 |> Enum.reverse() is identical to present > behaviour of 4..1 > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/elixir-lang-core/da1cd897-1410-4237-b95f- > 04e61ec7bcfe%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/da1cd897-1410-4237-b95f-04e61ec7bcfe%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Eric Meadows-Jönsson -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAM_eapgMp1%2B%2BbCvdMdXOVB_7J_iE_BomrvFhEaP6V%3DXcG9DEdQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
