Erlang. Tuples, Lists.

Tuples (кортежи)

Кортежи встречаются не во многих языках. Это своего рода контейнеры, которые могут содержать другие типы. Их часто сравнивают со структурами в C, только поля кортежа не имею имени. Несколько примеров:

{1,2,3}.
{a, b,c}.
{}.
{true, false}.
{{1, 2, 3}, {one, two, three}, {"One", "Two", "Three"}}}.

И несколько функций, для работы с кортежами:

1> tuple_size({one, {111, 222}, true, false, 3.1415}).
5
2> element(2, {one, {111, 222}, true, false, 3.1415}).
{111,222}
3> setelement(2, {one, {111, 222}, true, false, 3.1415}, result).
{one,result,true,false,3.1415}
4> {1, 2, 3} == {1, 2, 3}.
true
5> {1, 2, 4} > {1, 2, 3, 5}.
false
6> {0,0,0,0} > {1,1,1}.
true

Lists (списки)

Насколько я понимаю, разница между списками и кортежами в том как они обрабатываются, но это отдельная тема . Во всем остальном, они схожи, — содержат коллекции значений разных типов, не ограничены в размере и структуре:

1> [1,2,3].
[1,2,3]
2> [a, b,c].
[a,b,c]
3> [].
[]
4> [[1, 2, 3], [one, two, three], ["One", "Two", "Three"]].
[[1,2,3],[one,two,three],["One","Two","Three"]]
5> [1, 2] == [1, 2].
true
6> {1, 2, 4} > {1, 2, 3, 5}
true
7> [0,0,0,0] > [1,1,1].
false

Comments

comments


Bookmark and Share