在 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_atomatom_to_list