Implementieren Sie ein Erlang-Listenverständnis, das zwei Elemente aus einer Liste aufnimmt und eine neue Liste von Listen erstellt.Erlang: Wie implementiert man Erlang Listenverständnis?
Ich habe diesen Code
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
die gut arbeitet:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
aber es scheint, wie ich in der Lage sein soll, dies als eine Liste Verständnis zu implementieren. Mein Erlang-fu ist zu schwach, um darauf zu kommen.
Irgendwelche Vorschläge?
Dank
Dies folgt dem Erlang Mantra "lass es crashen", z. für den Fall "[a]". – Tilman
@Tilman Ja, die Funktion ** ist ** definiert, um Paare von Elementen zu übernehmen, wenn es sich also um einen Fehler handelt, wenn eine ungerade Anzahl von Elementen in der Liste enthalten ist. Sie können natürlich immer definieren, was in diesem Fall passieren soll und danach handeln. – rvirding