Действительно ли возможно использовать понимание списка в двух списках, по пунктам, в последовательности? Данный 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 два двоичных файла, например.
В настоящее время это невозможно. Это уже было предложено в EEP12 и EEP19 .
Ваш лучший выбор - реализовать для этого свою собственную рекурсивную функцию.
В модуле lists
для этого уже есть функция высшего порядка, которая называется lists: zipwith / 3 . Ваш примерный сценарий будет реализован следующим образом:
lists:zipwith(fun f/2, A, B).