Erlang перечисляют понимание с двумя списками в последовательности?

Действительно ли возможно использовать понимание списка в двух списках, по пунктам, в последовательности? Данный 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 два двоичных файла, например.

5
задан hlovdal 26 December 2010 в 14:41
поделиться

2 ответа

В настоящее время это невозможно. Это уже было предложено в EEP12 и EEP19 .

Ваш лучший выбор - реализовать для этого свою собственную рекурсивную функцию.

8
ответ дан 13 December 2019 в 22:09
поделиться

В модуле lists для этого уже есть функция высшего порядка, которая называется lists: zipwith / 3 . Ваш примерный сценарий будет реализован следующим образом:

lists:zipwith(fun f/2, A, B).
2
ответ дан 13 December 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: