извлечение элементов кортежей - PullRequest
20 голосов
/ 27 января 2011

Имеется один список с одним кортежем:

[{4,1,144}]

Как извлечь первый элемент кортежа:

element(1,lists:nth(1,L))

У вас есть более простое решение?

Ответы [ 3 ]

32 голосов
/ 27 января 2011

Попробуйте это:

1> A = [{3,1,1444}].
[{3,1,1444}]
2> [{X, _, _}] = A.
[{3,1,1444}]
3> X.
3
4> 
26 голосов
/ 27 января 2011

Учитывая, что вы получите именно то, что вы заявляете, список с одним кортежем, даже проще будет

element(1, hd(L)).

(Вариант сопоставления с образцом, такой как предложенный shk, вероятно, даже лучше, в зависимости от контекста.

4 голосов
/ 27 января 2011

вы также можете рассмотреть возможность использования синтаксиса записей, если вы хотите, чтобы некоторая семантика была встроена в ваши кортежи

-record(x, {y, z}).

1> A = #x{y=b, z=c}.
2> A#x.y.
b

все записи на самом деле являются кортежами, и вам не нужно беспокоиться ни о порядке элементов в этом кортеже, ни о добавлении / удалении элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...