[erlang-questions] data structure like skips list in Erlang

Benoit Chesneau bchesneau@REDACTED
Mon Oct 9 11:07:11 CEST 2017


I’m didn’t find anything that fit my need. There are some btree libs but that doesn’t fit my needs. Also a tree is not that fast for memory imo. I’m thinking to build a red-black tree lib that support iterations for it. Red-black trees look simple enough to be build as a pure functional data structure. Still contemplating though.

Benoit

> On 9 Oct 2017, at 09:52, Billy Svensson <billy.svensson@REDACTED> wrote:
> 
> I've needed this in the past too. Couldn't find any lib that could do
> it so I just ported the floor and ceiling methods of the TreeMap class
> in Java to an Erlang module that operated on a gb_tree.
> It's a bit ugly though since you have to work on the "hidden" data
> structure of the gb_trees module, so would be great if this could be a
> part of the standard module instead.
> 
> Not sure I still have that code, but could try to find it if you want.
> You would probably need to test it a bit better though since I only
> used it for a small hobby project.
> 
> On Sun, Oct 8, 2017 at 8:21 PM, Benoit Chesneau <bchesneau@REDACTED> wrote:
>> hmm i forgot to mention i need to also lookup for the data so not sure if a
>> zipper is designed for it.
>> 
>> I will have a loom kn the libs anyway, thanks for the links :)
>> 
>> - benoît
>> 
>> On 8 Oct 2017, at 19:33, Dmitry Kolesnikov <dmkolesnikov@REDACTED> wrote:
>> 
>> Hello,
>> 
>> It looks like you are looking for data structure called zipper. I’ve not
>> used any of these but there is at least two versions of zippers for Erlang.
>> 
>> https://github.com/ferd/zippers
>> https://github.com/inaka/zipper
>> 
>> - Dmitry
>> 
>> 
>> On 8 Oct 2017, at 20.14, Benoit Chesneau <bchesneau@REDACTED> wrote:
>> 
>> Hi all,
>> 
>> I’m looking for a datastructure like a skiplist to maintain an ordered set
>> of Key/Values. It has to have the following properties:
>> 
>> * allows custom compare function to order the data in a specific order
>> * allows the user to iterate forward (next) and backward (prev) the data
>> 
>> Has someone already written a lib that offers such datastructure? Or maybe
>> we can add a `prev(Key) function to gb_tree? Any idea i welcome :)
>> 
>> - benoit
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>> 
>> 
>> 
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>> 




More information about the erlang-questions mailing list