合并和Zip与列表理解

时间:2011-10-06 12:47:57

标签: erlang list-comprehension

想要合并[1,3,4],[2,5] - > [1,2,3,4,5]和zip [1,2,3],[4,5] - > [{1,4},{2,5}]。它不是功课,我只想提高我的列表理解能力。如果你知道任何与它的技巧的链接,不要犹豫提交。

1 个答案:

答案 0 :(得分:4)

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}]