Reputation: 3119
Is it possible to use list comprehension on two lists, item by item, in sequence? Given A = [1,2,3]
, B = [4,5,6]
, get some C = [f(1, 4), f(2, 5), f(3, 6)]
. In other words, a more direct/efficient way to do [f(U, V) || {U, V} = lists:zip(A, B)].
Similar question goes to binaries, if given A = <<1,2,3>>
and B = <<4,5,6>>
. This would be very useful if you have to xor two binaries, for example.
Upvotes: 5
Views: 1556
Reputation: 57648
It's not currently possible. It has already been proposed in EEP12 and EEP19.
Your best choice is to implement your own recursive function for that.
Upvotes: 8
Reputation: 9486
There is already a higher-order-function in the lists
module for this and it is called lists:zipwith/3. Your example scenario would be implemented this way:
lists:zipwith(fun f/2, A, B).
Upvotes: 3