我有一个像['a','b','c','d']
这样的列表,我需要的是为该列表中的每个项添加一个词缀,如:['a@erlang','b@erlang','c@erlang','d@erlang']
我尝试使用1lists:foreach1然后将两个字符串连接到一个,然后lists:append
连接到主列表,但这对我没用。
我尝试过的例子:
LISTa = [],
lists:foreach(fun (Item) ->
LISTa = lists:append([Item,<<"@erlang">>])
end,['a','b','c','d'])
提前致谢。
答案 0 :(得分:1)
1> L = ['a','b','c','d'].
[a,b,c,d]
2> [ list_to_atom(atom_to_list(X) ++ "@erlang") ||X <- L].
[a@erlang,b@erlang,c@erlang,d@erlang]
请尝试使用此代码,您可以使用list_to_atom
和atom_to_list
。
答案 1 :(得分:0)
这将解决问题(使用列表推导):
1> L = ["a","b","c","d"].
["a","b","c","d"]
2> R = [X ++ "@erlang" || X <- L].
["a@erlang","b@erlang","c@erlang","d@erlang"]
3>
请注意,我更改了字符串的原子;我不鼓励在Erlang中“动态创建原子/动态”,所以我想到了这一点。如果您仍然需要,请稍微更改一下实施,您就可以了。
注意:我假设原子和二进制文件之间的连接在某种程度上是你没有故意做的事情。