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
。
我正在学习 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
。