我正在学习Elixir,直到第7章PragProg书,在考虑了不变性和其他项目后,我认为通常不可能在Elixir Maps / Tuples / Lists等中创建循环引用。其中A - >; B - > C - >甲
没有真正尝试欺骗系统,这是真的吗?
答案 0 :(得分:9)
由于不变性,有鸡蛋问题产生通告。事实上,Elixir没有做任何事情来阻止它;它只是在不变性内开箱即用。
证明:由于链中的C
链接A
创建时,A
必须提前存在; A
依次链接B
,因此B
必须存在; B
链接C
,要求C
存在,但尚未创建。 QED。
不能简单地引用一个未发表的术语 * ,并且不能修改现有的术语,因此,在Elixir中是不可能的。
* 请阅读有关此处措辞的评论中的讨论以及最终选择Term
的原因。