缺點單元格

Elixir 中的列表是連結串列。這意味著列表中的每個專案都包含一個值,後跟指向列表中下一個專案的指標。這是使用 cons 單元在 Elixir 中實現的。

缺陷單元是具有值的簡單資料結構,或

可以在列表中的最後一項之前新增|符號,以標記具有給定頭部和尾部的(不正確的)列表。以下是單個 cons 單元格,其中 1 為頭部,2 為尾部:

[1 | 2]

列表的標準 Elixir 語法實際上等同於編寫一組巢狀的 cons 單元格:

[1, 2, 3, 4] = [1 | [2 | [3 | [4 | []]]]]

空列表 [] 用作 cons 單元的尾部以表示列表的結尾。

Elixir 中的所有列表都相當於 [head | tail] 的形式,其中 head 是列表中的第一項,tail 是列表的其餘部分,減去頭部。

iex> [head | tail] = [1, 2, 3, 4]
[1, 2, 3, 4]
iex> head
1
iex> tail
[2, 3, 4]

使用 [head | tail] 表示法對遞迴函式中的模式匹配很有用:

def sum([]), do: 0

def sum([head | tail]) do
  head + sum(tail)
end