links: Elixir MOC
Lists are built-in to Elixir language, they are considered as basic type, denoted by square bracket notation. Lists maybe empty or hold any number of items of any type.
empty_list = []
one_item_list = [1]
two_item_list = [1, 2]
multi_type_list = [1, :pi, 2.14, "four"]Elixir implements lists as a Linked List, where each node stores two items: the first item and another list with all the remaining items. The first item in the list is referred to as the head and the remaining list of items is called the tail. We can use this notation in code
# [1] represented in [head | tail] notation
[1 | []]
# [1, 2, 3] represented in [head | tail] notation
[1 | [2 | [3 | []]]]We can use [head | tail] notation to prepend elements to a list
# suppose
list = [2, 1]
[3, 2, 1] == [3 | list]
# => trueThere are several functions in the Kernel module for working with lists, as well as the whole List module
# Check if 1 is a member of the list
1 in [1, 2, 3, 4, 5]
# => true