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 i开发者_Python百科f you have to xor two binaries, for example.
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.
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).
精彩评论