Erlang的范围

Raf*_*ler 26 erlang range

从我编程的其他语言中,我习惯了范围.在Python中,如果我想要所有数字一到100,我写range(1, 101).同样地,在Haskell中我会写[1..100],在Scala中我会写1 to 100.

我在Erlang中找不到类似的东西,无论是在语法还是库中.我知道自己实现起来相当简单,但我想确保它首先不存在于其他地方(特别是因为标准库或语言实现会加载更高效).

有没有办法在Erlang语言或标准库中做范围?还是有一些我不知道的成语?我只想知道自己是否应该实施它.

我也很乐意我不想在Erlang中使用范围(我不想在Erlang中编写Python或Haskell).此外,如果我确实需要自己实现,如果你有任何改善性能的好建议,我很想听听他们:)

bti*_*lly 55

http://www.erlang.org/doc/man/lists.html看起来就像lists:seq(1, 100)你想要的那样.你也可以做一些事情lists:seq(1, 100, 2)来获得该范围内的所有奇数.


0xA*_*xAX 11

您可以使用list:seq(From, TO)@bitilly,也可以使用列表推导来添加更多功能,例如:

1> [X || X <- lists:seq(1,100), X rem 2 == 0].
[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,
 44,46,48,50,52,54,56,58|...]
Run Code Online (Sandbox Code Playgroud)