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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to