3 ms·
If you're talking about ropes in general, Boehm et al. [1] is the authoritative source. There's a wikipedia page, too, but I find it way more confusing than it
by nirvdrum 9y ago
If you're talking about ropes in general, Boehm et al. [1] is the authoritative source. There's a wikipedia page, too, but I find it way more confusing than it needs to be.
If you're interested in applications to other domains, we use ropes as the basis of the String data type in TruffleRuby. TruffleRuby is open source, so you can see that implementation by checking out the code in the org.truffleruby.core.rope package [2]. We had to extend the basic idea of ropes to better match Ruby's semantics, such as making them encoding-aware. I gave a talk about it at last year's RubyKaigi [3] that dives into real world trade-offs.
There are also a lot of various rope implementations out there. You probably can find one for your language of choice.
[1] - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.9450&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14....
[2] - https://github.com/graalvm/truffleruby https://github.com/graalvm/truffleruby
[3] - https://www.youtube.com/watch?v=UQnxukip368 https://www.youtube.com/watch?v=UQnxukip368