Слияние и Zip с пониманием списка - PullRequest
0 голосов
/ 06 октября 2011

Хотите объединить [1,3,4], [2,5] -> [1,2,3,4,5] и почтовый индекс [1,2,3], [4,5] -> [{1,4}, {2,5}].Это не домашняя работа, я просто хочу улучшить свои навыки в списках.Если вы знаете какие-либо ссылки на хитрости с ним, не стесняйтесь представить.

1 Ответ

4 голосов
/ 06 октября 2011
1> [1,3,4] ++ [2,5].
[1,3,4,2,5]
2> lists:zip([1,2],[4,5]).
[{1,4},{2,5}]

Для почтового индекса вы также можете написать свой собственный код:

% zip.erl
-module(zip).
-export([zip/2]).

zip(A, B) ->
    zip(A, B, []).

zip(_, [], Result) ->
    Result;

zip([], _, Result) ->
    Result;

zip([A|ARest], [B|BRest], Result) ->
    zip(ARest, BRest, [{A, B}|Result]).

Результат:

8> c(zip).
{ok,zip}
9> zip:zip([1,2,3],[4,5]).  
[{2,5},{1,4}]
...