清單

Erlang 中的列表是零個或多個 Erlang 項的序列,實現為單連結串列。列表中的每個元素可以是任何型別的術語(任何資料型別)。

1> [1,2,3].
[1,2,3]
2> [wow,1,{a,b}].     
[wow,1,{a,b}]

列表的頭部是列表的第一個元素。

列表的尾部是列表的其餘部分(沒有頭部)。它也是一個清單。
你可以使用 hd/1tl/1 或匹配 [H|T] 來獲取列表的頭部和尾部。

3> hd([1,2,3]).
1
4> tl([1,2,3]).
[2,3]
5> [H|T] = [1,2,3].
[1,2,3]
6> H.
1
7> T.
[2,3]

將元素新增到列表中

8> [new | [1,2,3]].
[new,1,2,3]

連線列表

9> [concat,this] ++ [to,this].
[concat,this,to,this]

字串

在 Erlang 中,字串不是單獨的資料型別:它們只是表示 ASCII 或 Unicode 程式碼點的整數列表:

> [97,98,99].
"abc"
> [97,98,99] =:= "abc".
true
> hd("ABC").
65

當 Erlang shell 列印一個列表時,它會嘗試猜測你是否真的認為它是一個字串。你可以通過呼叫 shell:strings(false) 來關閉該行為:

> [8].
"\b"
> shell:strings(false).
true
> [8].
[8]

在上面的示例中,整數 8 被解釋為退格的 ASCII 控制字元,shell 認為它是字串中的有效字元。