Reemplace las llaves en una tupla en Erlang
Pregunta
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 encontrando el calendario: day_of_the_week ()). Así que ahora quiero cambiar la lista a [{Mon, 40}, {Mar, 45}, {Wed, 54} ... {Sun, 23}]. ¿Hay una forma más fácil de hacerlo que las listas: keyreplace?
Solución
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}]).
Otros consejos
... o usando 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 comprensión de la lista , y lee como:
" Crea una lista de tuplas
{httpd_util: day (A), B}
, donde{A, B}
se toma de la listaL
"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow