执行列表追加的常规方法是:
10> [1,2,3] ++ [4].
[1,2,3,4]
但是在我将其转换为以下方式之后,我实际上并没有明白结果在这里意味着什么:
11> [1,2, 3] ++ 4.
[1,2,3|4]
有人能给我解释一下吗?非常感谢。
答案 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}}。