[erlang-questions] maps:first
Oliver Bollmann
oliver.bollmann@REDACTED
Tue Aug 13 20:18:22 CEST 2019
Hi,
i guess *we* do all the same,
1) processes with propery Y, i have about 1-10 million processes
2) gen_server to manage these processes in maps,dict,lists for example a
pool with in,out,leave,delete
3) monitoring these processes
Dilemma:
If process P died i have to delete it from data structure using in 2)
- maps, dict very fast;
lists -> List -- [Item] slow!
OK, i could use a sorted list and and the subtract would be faster,
but insert is then slower!
And subtract need an algorithm!
- i do not want a special process, only one random or the first one from
data structure using in 2)
here is the place where i need *first_from_data_structure*
**lists very fast: first defines it itself -> [First|Rest] = List,
but using maps or dict there is not first, at all!
The question is: How can i get a random or first item from maps or dict?
Hope that helps!
Oliver
On 13.08.19 15:41, Lukas Larsson wrote:
>
>
> On Tue, Aug 13, 2019 at 3:34 PM Oliver Bollmann
> <oliver.bollmann@REDACTED <mailto:oliver.bollmann@REDACTED>> wrote:
>
> I often need maps:first(Map), is there plan for it?
>
>
> No, there is currently no plan for it, as I cannot think of a use case
> when it would be useful, but that might just be poor imagination on my
> part.
>
> What do you use maps:first for?
>
> My current implementation is:
>
> first(Map) ->
> case maps:next(maps:iterator(Map))of {Key,Val,_} -> {Key,Val};
> none -> none
> end. Create the iterator always a new map?
>
> --
> Grüße
> Oliver Bollmann
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> http://erlang.org/mailman/listinfo/erlang-questions
>
--
Grüße
Oliver Bollmann
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190813/f35c0a89/attachment.htm>
More information about the erlang-questions
mailing list