Заменить ключи в кортеже в Erlang - PullRequest
7 голосов
/ 01 октября 2008

У меня есть список кортежей, например. [{1,40}, {2,45}, {3,54} .... {7,23}] где 1 ... 7 - дни недели (рассчитывается путем нахождения календаря: day_of_the_week ()). Итак, теперь я хочу изменить список на [{Mon, 40}, {Tue, 45}, {Wed, 54} ... {Sun, 23}]. Есть ли более простой способ сделать это, чем списки: keyreplace?

Ответы [ 2 ]

13 голосов
/ 06 октября 2008

... или используя другой синтаксис:

[{httpd_util:day(A), B} || {A,B} <- L]

где:

L = [{1,40},{2,45},{3,54}....{7,23}]

Конструкция называется списком и читается как:

"Создать список из {httpd_util:day(A),B} кортежей, где {A,B} взят из списка L"

3 голосов
/ 01 октября 2008

Simple. Используйте карту и удобный инструмент из модуля httpd.

lists:map(fun({A,B}) -> {httpd_util:day(A),B} end, [{1,40},{2,45},{3,54},{7,23}]).
...