如何使用理解过滤Erlang中两个列表的最大值?

时间:2018-03-14 04:47:43

标签: erlang list-comprehension

我希望从两个列表XY创建一个列表,如果X值大于{X值,则只取Y值1}}。我试过这个:

[ X || X <- [1,2,3], Y <- [0,2,1], X > Y].

但它不像我想象的那样有效。我想要输出:[1,3]但我得到了:

[1,2,2,3,3,3]

我如何使用列表推导来完成此操作?

1 个答案:

答案 0 :(得分:5)

您可以使用lists:zip和列表理解:

1> [X || {X, Y} <- lists:zip([1, 2, 3], [0, 2, 1]), X > Y].
[1,3]