Erlang:获取列表中每个元组的第一个元素

Sam*_*Sam 5 erlang functional-programming tuples list-comprehension erl

例如,如果我同时创建列表,我可以获得每个元组的第一个元素

[element(2,X) || X <- [{1,2},{3,4}]].
[2,4]
Run Code Online (Sandbox Code Playgroud)

这可以正常工作。我希望能够在尝试对其进行任何操作之前创建该列表

例如:创建列表

X = [{1,2,3},{3,4,5}]. 
[{1,2,3},{3,4,5}]
Run Code Online (Sandbox Code Playgroud)

然后获取每个元组的第一个元素

element(1,X).
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

** exception error: bad argument
     in function  element/2
        called as element(1,[{1,2,3},{3,4,5}])
Run Code Online (Sandbox Code Playgroud)

我希望这段代码给出与我的第一个例子相同的结果

Sam*_*Sam 6

列表理解与生成器一起使用(<-)

X = [{1,2,3},{3,4,5}].
[A || {A,_,_} <- X].
Run Code Online (Sandbox Code Playgroud)

这就是说我们要打印 element 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]
Run Code Online (Sandbox Code Playgroud)