[erlang-questions] Help on dictionary search
Christian S
chsu79@REDACTED
Tue Nov 7 15:45:16 CET 2006
On 11/7/06, Bob Cowdery <Bob.Cowdery@REDACTED> wrote:
> I have a dictionary of the form [{class, [Pid, Pid, Pid ...]}, {class1[...]}, ...]. A given Pid can appear in one or more classes. Given a Pid I want to delete all instances of that Pid from the dictionary and if the class then has an empty list to remove the class. Generally I look up the dictionary by class and don't mind a linear search for the delete as its occational.
A suggestion, use the 'sets' module (or at least 'ordsets' if the list
representation is important).
remove_pid(Classes, Pid) ->
Classes1 = [{Class, sets:del_element(Pid, Set)} || {Class, Set} <- Classes],
Classes2 = [{Class, Set} || {Class, Set} <- Classes1, sets:size(Set) =/= 0].
[also untested]
More information about the erlang-questions
mailing list