关于| erlang中的运算符。

时间:2013-11-23 15:49:36

标签: erlang

我们可以通过写这样的东西在erlang中创建一个嵌套列表:

 NL = [[2,3], [1]]. 
 [[2,3],[1]]

但是假设我们这样写了:

 OL = [[2,3]|1].
 [[2,3]|1]

OL仍然是名单吗?有人可以详细说明OL是什么吗?

2 个答案:

答案 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"?