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

[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]

关于functional-programming - Erlang:获取列表中每个元组的第一个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53854424/

10-10 13:16