37 lines
916 B
Markdown
37 lines
916 B
Markdown
---
|
|
title: Lists
|
|
---
|
|
## Lists
|
|
|
|
In Elixir, lists are data structures comprised of values within square brackets. The values in a list can be any type.
|
|
```elixir
|
|
iex> [1, "string", true]
|
|
[1, "string", true]
|
|
```
|
|
|
|
## Immutability
|
|
|
|
Data structures in Elixir are immutable, so any operations performed on a List will return a new list, leaving the original intact.
|
|
```elixir
|
|
iex> list = [1, "string", true]
|
|
[1, "string", true]
|
|
iex> list ++ [2]
|
|
[1, "string", true, 2]
|
|
iex> list
|
|
[1, "string", true]
|
|
```
|
|
|
|
## Heads and Tails
|
|
|
|
The head (first element) of a list and the tail (remaining values) can easily accessed with the `hd/1` and `tl/1` operators.
|
|
```elixir
|
|
iex> list = [1, "string", true]
|
|
iex> hd(list)
|
|
1
|
|
iex> tl(list)
|
|
["string", true]
|
|
```
|
|
|
|
#### More Information:
|
|
* [elixir-lang.org | recursion](https://elixir-lang.org/getting-started/basic-types.html#linked-lists)
|
|
* [hexdocs | Enum](https://hexdocs.pm/elixir/List.html) |