【发布时间】:2015-02-03 07:28:24
【问题描述】:
我正在尝试关注: http://learnyousomeerlang.com/starting-out-for-real
有一个部分演示了几个等效的列表结构:
Erlang 列表的构建方式有时是 让不习惯类似构造函数的人感到困惑。帮助 你熟悉这个概念,阅读所有这些例子(提示: 它们都是等价的):
[a, b, c, d]
[a, b, c, d | []]
[a, b | [c, d]] <---- I don't understand this one
[a, b | [c | [d]]]
[a | [b | [c | [d]]]]
[a | [b | [c | [d | [] ]]]]
我不明白的是:
[a, b | [c, d]]
我了解正常的嵌套构造函数语法,它只是一个递归构造的列表。但是 erlang 是如何处理这种非嵌套术语语法的呢?我本来期望评估 b | [c, d] 会导致 [b, c, d] 导致:
[a, [b , c, d]]
当然,我可以简单地记住语法的最终结果是什么,但我正在寻找更详细的解释。
【问题讨论】:
标签: erlang