【发布时间】:2016-04-30 02:45:06
【问题描述】:
我们可以通过编写如下代码在 erlang 中创建一个嵌套列表:
NL = [[2,3], [1]].
[[2,3],[1]]
但假设我们是这样写的:
OL = [[2,3]|1].
[[2,3]|1]
OL 还是列表吗?有人可以详细说明什么是 OL 吗?
【问题讨论】:
标签: erlang
我们可以通过编写如下代码在 erlang 中创建一个嵌套列表:
NL = [[2,3], [1]].
[[2,3],[1]]
但假设我们是这样写的:
OL = [[2,3]|1].
[[2,3]|1]
OL 还是列表吗?有人可以详细说明什么是 OL 吗?
【问题讨论】:
标签: erlang
这称为不当列表,通常不应使用。我认为大多数库函数都需要正确的列表(例如 length([1|2]) 抛出错误的参数异常)。不过,模式匹配与不正确的列表有效。
对于一些用例,请参阅Practical use of improper lists in Erlang (perhaps all functional languages)
【讨论】:
有关| 和建筑清单的更多信息在Functional Programming: what is an "improper list"? 中提供。
【讨论】: