我想从两个相同大小的列表中选择数字到另一个列表中。选择更大的数字。
例如:
[1,2,3,4] and [5,5,0,1] ----> [5,5,3,4]
Erlang有优雅的方式吗?使用列表推导可能吗?
答案 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]