Erlang получает первый элемент каждого кортежа в списке - PullRequest
0 голосов
/ 19 декабря 2018

Я могу получить первый элемент каждого кортежа, если создаю список в одно и то же время, например

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

Я хочу, чтобы этот код давал те же результаты, что и мой первый пример

1 Ответ

0 голосов
/ 19 декабря 2018

Использование Понимание списка

[A || {A,_,_} <- X]

Это говорит о том, что мы хотим напечатать элемент A, где A равен кортежу {A, , }равно каждому кортежу в X. Поскольку нас не волнует второй и третий элемент, они устанавливаются равными _, а затем мы просто выбираем A.

...