这是否意味着将一个整数附加到erlang中的列表?

时间:2015-09-17 08:42:51

标签: erlang

执行列表追加的常规方法是:

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

但是在我将其转换为以下方式之后,我实际上并没有明白结果在这里意味着什么:

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

有人能给我解释一下吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

Erlang列表在Getting Started with Erlang User's Guide章节Sequential Programming和章节Lists中的answer to how is a list constructured by the erlang vm?中有所描述。运算符|将列表的头部与尾部分开。正确的列表以空列表结束。 ,的语法只是语法糖。

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

它与Lisp中的CONS函数类似。如果不以空列表结束,则该列表称为不正确列表。

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

您通过附加数字而不是正确的列表来制作不正确的列表。 ([4]是正确的列表[4|[]]。)有关其在BEAM VM内部如何工作的更多详细信息,请参阅我的{{3}}。