Elixir,不可能有循环引用?

Elixir, no circular reference possible?

我正在学习 Elixir,直到第 7 章 PragProg 书,在考虑了不可变性和其他项目之后,我认为在 Elixir Maps/Tuples/Lists 中创建循环引用通常是不可能的,等等.. 其中 A -> B -> C -> A.

如果不真正尝试欺骗系统,这是真的吗?

由于不变性,创建通告存在先有鸡还是先有蛋的问题。事实上,Elixir 没有采取任何措施来阻止它;它只是在不变性中开箱即用。

证明: 因为 C 在你的链节 A 创建时, A 必须提前存在; A 依次链接 B 因此 B 必须存在于之前; B 链接 C,需要 C 存在,但尚未创建。 QED.

不能简单引用一个不存在的Term*,也不能修改已有的Term,所以在Elixir中是不可能的。


* 请阅读评论中关于措辞的讨论,以及为什么最终选择 Term