【发布时间】:2010-12-14 23:31:53
【问题描述】:
如何返回,例如元组的第一个元素?
我想获取一个包含 2 个元素元组的列表,并将每个元组的第二个元素作为新列表返回。
【问题讨论】:
标签: erlang
如何返回,例如元组的第一个元素?
我想获取一个包含 2 个元素元组的列表,并将每个元组的第二个元素作为新列表返回。
【问题讨论】:
标签: erlang
1> P = {adam,24,{july,29}}.
{adam,24,{july,29}}
2> element(1,P).
adam
3> element(3,P).
{july,29}
另请参阅:http://www.erlang.org/doc/reference_manual/data_types.html#id2259804
【讨论】:
你可以使用 lists:map(虽然不像列表理解那么简单):
lists:map(fun({_,X}) -> X end, [{a,b},{c,d},{e,f}])。
【讨论】:
正是您所问的:
666> [元素(2,X)|| X
[2,4]
【讨论】:
嗯,没错,element/2 + 理解会起作用。但最好的方法是模式匹配:
[ 变量2 || {_Var1, Var2}
由于代码简单,每个模式匹配都优于函数调用。
因此,您所拥有的是列表理解(列表内的双管道)。在管道(右侧)之前有发电机,左侧是产品。
一般:
列表 = [ ReturnedValue = some_function(X) || X
【讨论】: