Data structures 为什么ETS表不进行垃圾收集?

Data structures 为什么ETS表不进行垃圾收集?,data-structures,erlang,ets,Data Structures,Erlang,Ets,我正在学习Erlang,所以这是一个提高我对Erlang设计选择理解的问题 为什么ETS数据结构(字典/树)与Erlang内置类型(列表/元组等)的处理方式如此不同。也就是说,它们不是垃圾收集的,并且是可变的,因此使用它们的所有函数都有副作用。为了避免内存泄漏,必须跟踪ETS表,这似乎特别烦人 Erlang没有一个行为更像列表的字典数据类型(是不可变的和垃圾收集的),这有什么原因吗 假设ETS仅用于复制成本非常高的大型数据库类结构,而对于任何其他情况,您都可以使用O(n)元组列表作为键/值数据结

我正在学习Erlang,所以这是一个提高我对Erlang设计选择理解的问题

为什么ETS数据结构(字典/树)与Erlang内置类型(列表/元组等)的处理方式如此不同。也就是说,它们不是垃圾收集的,并且是可变的,因此使用它们的所有函数都有副作用。为了避免内存泄漏,必须跟踪ETS表,这似乎特别烦人

Erlang没有一个行为更像列表的字典数据类型(是不可变的和垃圾收集的),这有什么原因吗


假设ETS仅用于复制成本非常高的大型数据库类结构,而对于任何其他情况,您都可以使用O(n)元组列表作为键/值数据结构?

ETS更像是一种数据库类设施,而不是一种数据结构。如果需要键值数据类型,则可以使用,其行为类似于任何其他Erlang术语(垃圾收集、不可变等)。标准库中还实现了其他通用数据结构,如集合和平衡树。大多数情况下,ETS是不必要的。

哦,我还没有学会dict。这很有道理。谢谢