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.

Reply via email to