2016-03-29 9 views
2

Ich habe eine Liste wie diese ['a','b','c','d'] und was ich brauche ist ein Affix zu jedem Element in dieser Liste wie hinzuzufügen: ['[email protected]','[email protected]','[email protected]','[email protected]']Eine Zeichenfolge an Elemente in Listen binden: in Erlang flattern?

ich versucht, mit 1lists: foreach1 und Concat zwei Strings ein und dann lists:append auf die dann Hauptliste, aber das hat nicht für mich funktioniert.

Beispiel das, was ich versuchte:

LISTa = [], 
lists:foreach(fun (Item) -> 
    LISTa = lists:append([Item,<<"@erlang">>]) 
end,['a','b','c','d']) 

Vielen Dank im Voraus.

+2

Seien Sie vorsichtig, Sie scheinen Listen, Binärdateien und Atome zu verwechseln. "a" ist ein Atom. "a" ist eine Liste und <<"a">> ist eine Binärdatei. Sie benötigen eine Konversation, um sie zu erfassen, wenn die Daten von verschiedenen Typen sind. –

Antwort

0

Dies wird den Trick (Listenkomprehensionen verwenden):

1> L = ["a","b","c","d"]. 
["a","b","c","d"] 
2> R = [X ++ "@erlang" || X <- L]. 
["[email protected]","[email protected]","[email protected]","[email protected]"] 
3> 

Beachten Sie, dass ich die Atome für Streicher geändert; Es ist entmutigend, in Erlang "Atome fliegend/dynamisch" zu erzeugen, also habe ich das in meinen Gedanken gerahmt. Wenn Sie es noch brauchen, ändern Sie die Implementierung ein wenig und Sie sind gut zu gehen.

HINWEIS: Ich nehme an, die Verkettung zwischen Atomen und Binärdateien ist irgendwie etwas, was Sie nicht absichtlich getan haben.

+0

Danke für die Hilfe, funktioniert wie Charme. Ja, ich habe es nicht absichtlich gemacht. – menico