large tuples

Luke Gorrie luke@REDACTED
Fri May 7 14:59:43 CEST 2004


"Ulf Wiger (AL/EAB)" <ulf.wiger@REDACTED> writes:

> The 'lines' contrib on jungerl can actually be used for this.
> It's basically a tuple tree with array semantics.

[...]

> As far as I know, the lines module has a user base of 1:
> Joe Armstrong decided to use it for some "emacs clone"
> (or rather perhaps a pico_emacs, right?)

I have something similar in the Jungerl too, cord.erl in the Ermacs
editor. IIRC it's basically the same design as lines.erl except that
it operates on contiguous/linear text rather than lines. Internally it
breaks it into a tree with size-bounded binaries on the leaves.

An excellent paper about how to easily write balanced trees in a
functional language is:

  "Implementing sets efficiently in a functional language"
  http://www.swiss.ai.mit.edu/~adams/BB/

If you wanted a more tuple-like data structure then I think you could
use the gb_trees module (in OTP) with the element-number for your
key. The 'dict' module (a hashtable) may work well too.

BTW, the other day I was going to convert some ETS code over to use
gb_trees, but it was missing a 'next' function that I needed. I think
gb_trees:iterator(Tree, KeyToStartFrom) would be a nice feature (for
implementing SNMP 'get_next').

Cheers,
Luke




More information about the erlang-questions mailing list