Реализовать понимание списка Erlang, которое берет два элемента из списка и создает новый список списков.Erlang: как реализовать понимание списка Erlang?
У меня есть этот код
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
, который работает отлично:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
но мне кажется, что я должен быть в состоянии осуществить это в качестве списка понимания. Мой Erlang-fu слишком слаб, чтобы придумать это.
Любые предложения?
Благодаря
Это следует за мантрами Эрланг «пусть это сбой», например. для случая '[a]'. – Tilman
@Tilman Да, функция ** определена ** для принятия пар элементов, поэтому, если это ошибка, если в списке есть нечетное число элементов. Конечно, вы всегда можете определить, что должно произойти в этом случае, и обработать его после этого. – rvirding