Erlang列表理解有两个列表顺序?

时间:2009-12-17 17:21:42

标签: erlang binary list-comprehension

是否可以按顺序逐项使用两个列表中的列表推导?给定A = [1,2,3]B = [4,5,6],获取一些C = [f(1, 4), f(2, 5), f(3, 6)]。换句话说,更直接/有效的方式[f(U, V) || {U, V} = lists:zip(A, B)].

如果给出A = <<1,2,3>>B = <<4,5,6>>,则类似的问题会转到二进制文件。例如,如果你需要xor两个二进制文件,这将非常有用。

2 个答案:

答案 0 :(得分:8)

目前无法实现。它已在EEP12EEP19中提出。

您最好的选择是为此实现自己的递归功能。

答案 1 :(得分:1)

lists模块中已有一个高阶函数,它被称为lists:zipwith/3。您的示例场景将以这种方式实现:

lists:zipwith(fun f/2, A, B).