Erlang:获取列表中每个元组的第一个元素
Erlang: Get the first element of each tuple in a list
如果我同时创建列表,我可以获得每个元组的第一个元素,例如
[element(2,X) || X <- [{1,2},{3,4}]].
[2,4]
这可以正常工作。
我希望能够在尝试对其进行任何操作之前创建列表
示例:创建列表
X = [{1,2,3},{3,4,5}].
[{1,2,3},{3,4,5}]
然后得到每个元组的第一个元素
element(1,X).
但是我得到了错误
** exception error: bad argument
in function element/2
called as element(1,[{1,2,3},{3,4,5}])
我希望这段代码给出与第一个示例相同的结果
将List Comprehension与生成器一起使用(<-)
X = [{1,2,3},{3,4,5}].
[A || {A,_,_} <- X].
这是说我们要打印元素 A
,其中 A 取自元组 {A,_,_}
(我们从 X 中的每个元组生成的元组)。因为我们只是选择A,并不关心第二个和第三个元素,所以它们被设置为等于_。
输出
1> X = [{1,2,3},{3,4,5}].
[{1,2,3},{3,4,5}]
2> [A || {A,_,_} <- X].
[1,3]
如果我同时创建列表,我可以获得每个元组的第一个元素,例如
[element(2,X) || X <- [{1,2},{3,4}]].
[2,4]
这可以正常工作。 我希望能够在尝试对其进行任何操作之前创建列表
示例:创建列表
X = [{1,2,3},{3,4,5}].
[{1,2,3},{3,4,5}]
然后得到每个元组的第一个元素
element(1,X).
但是我得到了错误
** exception error: bad argument
in function element/2
called as element(1,[{1,2,3},{3,4,5}])
我希望这段代码给出与第一个示例相同的结果
将List Comprehension与生成器一起使用(<-)
X = [{1,2,3},{3,4,5}].
[A || {A,_,_} <- X].
这是说我们要打印元素 A
,其中 A 取自元组 {A,_,_}
(我们从 X 中的每个元组生成的元组)。因为我们只是选择A,并不关心第二个和第三个元素,所以它们被设置为等于_。
输出
1> X = [{1,2,3},{3,4,5}].
[{1,2,3},{3,4,5}]
2> [A || {A,_,_} <- X].
[1,3]