2008-10-01 10 views
7

Tengo una lista de tuplas, por ejemplo. [{1,40}, {2,45}, {3,54} .... {7,23}] donde 1 ... 7 son días de la semana (calculados al encontrar el calendario: day_of_the_week()). Así que ahora quiero cambiar la lista a [{Mon, 40}, {Tue, 45}, {Wed, 54} ... {Sun, 23}]. ¿Hay una manera más fácil de hacerlo que las listas: keyreplace?Reemplazar claves en una tupla en Erlang

Respuesta

3

Simple. Use el mapa y una herramienta útil del módulo httpd.

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

... o el uso de una sintaxis diferente:

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

donde:

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

El constructo se denomina list comprehension, y dice así:

"Crear una lista de {httpd_util:day(A),B} tuplas, donde {A,B} se toma de la lista L "