From the other languages I program in, I'm used to having ranges. In Python, if I want all numbers one up to 100, I write range(1, 101)
. Similarly, in Haskell I'd write [1..100]
and in Scala I'd write 1 to 100
.
I can't find something similar in Erlang, either in the syntax or the library. I know that this would be fairly simple to implement myself, but I wanted to make sure it doesn't exist elsewhere first (particularly since a standard library or language implementation would be loads more efficient).
Is there a way to do ranges either in the Erlang language or standard library? Or is there some idiom that I'm missing? I just want to know if I should implement it myself.
I'm also open to the possibility that I shouldn't want to use a range in Erlang (I wouldn't want to be coding Python or Haskell in Erlang). Also, if I do need to implement this myself, if you have any good suggestions for improving performance, I'd love to hear them :)
From http://www.erlang.org/doc/man/lists.html it looks like lists:seq(1, 100)
does what you want. You can also do things like lists:seq(1, 100, 2)
to get all of the odd numbers in that range instead.