2008-10-01 7 views
7

J'ai une liste de tuples par exemple. [{1,40}, {2,45}, {3,54} .... {7,23}] où 1 ... 7 sont des jours de la semaine (calculés en recherchant le calendrier: day_of_the_week()). Alors maintenant je veux changer la liste à [{Mon, 40}, {Mar, 45}, {Mer, 54} ... {Sun, 23}]. Y at-il un moyen plus simple de le faire que des listes: keyreplace?Remplacer les clés dans un tuple dans Erlang

Répondre

3

Simple. Utilisez la carte et un outil pratique du module httpd.

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

... ou en utilisant une syntaxe différente:

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

où:

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

La construction est appelée list comprehension, et se lit comme:

"Construire une liste de {httpd_util:day(A),B} tuples, où {A,B} provient de la liste L "