我们可以通过写这样的东西在erlang中创建一个嵌套列表:
NL = [[2,3], [1]].
[[2,3],[1]]
但是假设我们这样写了:
OL = [[2,3]|1].
[[2,3]|1]
OL仍然是名单吗?有人可以详细说明OL是什么吗?
答案 0 :(得分:4)
这称为不当列表,通常不应使用。我认为大多数库函数都需要正确的列表(例如length([1 | 2])抛出错误的参数异常)。模式匹配与不正确的列表有效。
对于某些用例,请参阅Practical use of improper lists in Erlang (perhaps all functional languages)
答案 1 :(得分:2)
有关|
和建筑物清单的更多信息,请参见Functional Programming: what is an "improper list"?。