开发者

Erlang list comprehension with two lists in sequence?

开发者 https://www.devze.com 2022-12-14 12:15 出处:网络
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

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).
0

精彩评论

暂无评论...
验证码 换一张
取 消