在 Erlang 中将字符串附加到 lists:flatten 中的项目?
Affix a string to items within a lists:flatten in Erlang?
我有一个这样的列表 ['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'])
提前致谢。
这可以解决问题(使用列表理解):
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 中不鼓励使用 "create atoms on the fly/dynamically",所以我在脑海中构想了这一点。如果你仍然需要,稍微改变一下实现,你就可以开始了。
注意:我假设原子和双星之间的连接不知何故不是你故意做的。
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
。
我有一个这样的列表 ['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'])
提前致谢。
这可以解决问题(使用列表理解):
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 中不鼓励使用 "create atoms on the fly/dynamically",所以我在脑海中构想了这一点。如果你仍然需要,稍微改变一下实现,你就可以开始了。
注意:我假设原子和双星之间的连接不知何故不是你故意做的。
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
。