Implementare una comprensione di lista Erlang che prende due elementi da un elenco e crea un nuovo elenco di elenchi.Erlang: come implementare la comprensione delle liste di Erlang?
Ho questo codice
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
che funziona bene:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
ma sembra che dovrei essere in grado di implementare questa come una lista di comprensione. Il mio Erlang-fu è troppo debole per inventarlo.
Qualche suggerimento?
Grazie
Questo segue il mantra di Erlang "lasciarlo cadere", ad es. per il caso "[a]'. – Tilman
@Tilman Sì, la funzione è ** definita ** per prendere coppie di elementi, quindi se si tratta di un errore se c'è un numero dispari di elementi nell'elenco. Ovviamente potresti sempre definire cosa deve succedere in quel caso e gestirlo dopo. – rvirding