[erlang-questions] Best way to test if empty dict/set/etc.?
Fri May 31 17:33:43 CEST 2013
On 05/31/2013 11:19 AM, Fred Hebert wrote:
> Most of these data structures have a 'new' or 'empty' function call
> that creates an empty/blank data structure.
> I then just compare things like MyDict =:= dict:new() to know if it's
> empty. I'm not aware of a case where this doesn't work, but it makes a
> very subtle assumption that *might* break opacity: it assumes that the
> data structure doesn't keep internal statistics or traces of content it
> has seen before but is no longer there.
I wasn't sure about whether the equality test would always work, either.
Does the documentation ever mention whether or not equality tests on
opaque structures is expected to work?
However, for sets/ordsets, maybe this is both O(1) and opaque:
is_empty(S) -> sets:is_subset(S, sets:new()).
More information about the erlang-questions