将整数附加到 erlang 中的列表是什么意思?

Whet does it means to append a integer to a list in erlang?

添加列表的正常方法是通过:

10> [1,2,3] ++ [4].
[1,2,3,4]

但是我把它转换成下面的方式后,我其实不明白这里的结果是什么意思:

11> [1,2, 3] ++ 4.  
[1,2,3|4]

谁能给我解释一下?非常感谢。

Erlang 列表在 Getting Started with Erlang User's Guide in chapter Sequential Programming and subchapter Lists 中进行了描述。运算符 | 将列表的头部与尾部分开。正确的列表以空列表结尾。 , 的语法只是语法糖。

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

类似于 Lisp 中的 CONS 函数。不以空列表结尾的列表称为不正确列表。

2> [1|[2|[3|4]]]. 
[1,2,3|4]

您通过附加数字而不是正确的列表来创建不正确的列表。 ([4] 是正确的列表 [4|[]]。)请参阅我的 了解它在 BEAM VM 内部如何工作的更多细节。