从两个列表中选择更大的数字

时间:2014-03-24 19:44:27

标签: list erlang

我想从两个相同大小的列表中选择数字到另一个列表中。选择更大的数字。

例如:

[1,2,3,4] and [5,5,0,1] ----> [5,5,3,4]

Erlang有优雅的方式吗?使用列表推导可能吗?

4 个答案:

答案 0 :(得分:4)

使用列表推导:

A = [1,2,3,4],
B = [5,5,0,1],
[max(X, Y) || {X,Y} <- lists:zip(A,B)].

返回:

> [5,5,3,4]

答案 1 :(得分:2)

 lists:map(fun({F,S}) -> max(F, S) end, lists:zip(L1, L2)).

答案 2 :(得分:0)

如果您不想两次遍历列表:

A = [1,2,3,4],
B = [5,5,0,1],
lists:zipwith(fun erlang:max/2, A, B).

答案 3 :(得分:0)

1> L1 = [1,2,3,4], L2 = [5,5,0,1].
2> lists:zipwith(fun (X, Y) when X > Y -> X;
                     (X, Y) when X =< Y -> Y end, L1, L2).
[5,5,3,4]