For loop 从erlang中的字符串和数字创建atom
我是Erlang新手,我想从字符串和格式创建atom。我也不知道如何在erlang中创建循环。这是我想要的sudo代码:For loop 从erlang中的字符串和数字创建atom,for-loop,erlang,For Loop,Erlang,我是Erlang新手,我想从字符串和格式创建atom。我也不知道如何在erlang中创建循环。这是我想要的sudo代码: For (int i = 0; i++; i < 10) { list_to_atom(lists:flatten(io_lib:format("certfile~B", [i]))) } For(int i=0;i++;i R=列表:序号(1,10)。 [1,2,3,4,5,6,7,8,9,10] 2> [list_to_atom(list:plant(io
For (int i = 0; i++; i < 10) {
list_to_atom(lists:flatten(io_lib:format("certfile~B", [i])))
}
For(int i=0;i++;i<10){
列表到原子(列表:展平(io_lib:format(“certfile~B,[i]))
}
如何在Erlang中使用此功能?您可以使用
列表:map/2
功能以及列表:seq/2
:
lists:map(fun(I)->
list_to_atom(lists:flatten(io_lib:format("certfile~B", [I])))
end, lists:seq(1,10)).
lists:seq/2
将生成一个数字列表,而lists:map/2
将其更改为所需的输出。…并使用列表理解:
ɐuıɥɔɐɯ@uplink:~/Workshop/Erlang$ erl
Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]
Eshell V8.3 (abort with ^G)
1> R = lists:seq(1, 10).
[1,2,3,4,5,6,7,8,9,10]
2> [list_to_atom(lists:flatten(io_lib:format("certfile~B", [X]))) || X <- R].
[certfile1,certfile2,certfile3,certfile4,certfile5,
certfile6,certfile7,certfile8,certfile9,certfile10]
3>
上传:~/Workshop/Erlang$erl
Erlang/OTP19[erts-8.3][source][64位][smp:4:4][async threads:10][kernel poll:false]
Eshell V8.3(使用^G中止)
1> R=列表:序号(1,10)。
[1,2,3,4,5,6,7,8,9,10]
2> [list_to_atom(list:plant(io_lib:format(“certfile~B,[X]))| | X
干杯
顺便说一句,我不确定您是否意识到了这一点,但在Erlang中,动态生成原子是不受鼓励的。您可以使用/创建的原子数量有限(相当高,但有限)而且它们不是垃圾收集的。我不确定我是否理解这个问题。请向函数提供输入数据和预期输出。如果您对Erlang有疑问,最好以这种格式提问。这样的格式更方便,因为每个问题都必须是具体的。请注意,在Erlang中动态生成原子通常是一个坏主意问题是它们不是垃圾收集的,所以如果你创建太多,它会使虚拟机崩溃。请你发表评论。我需要的答案正是这个。