从我编程的其他语言中,我习惯了范围.在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)