2008-10-01 88 views
7

我有一个元组列表,例如。 [{1,40},{2,45},{3,54} .... {7,23}]其中1 ... 7是一周中的日子(通过查找日历来计算:day_of_the_week())。因此,现在我想将列表更改为[{Mon,40},{Tue,45},{Wed,54} ... {Sun,23}]。有没有比列表更简单的方法:keyreplace?替换Erlang中的元组中的键

回答

3

简单。使用来自httpd模块的map和一个方便的工具。

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

...或使用不同的语法:

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

其中:

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

的构建体被称为list comprehension,并读为:

“建立一个列表{httpd_util:day(A),B}元组,其中{A,B}取自列表L