* Mathieu Bouchard (Mar 15, 2005 19:50): > On Tue, 15 Mar 2005, Nikolai Weibull wrote: > > Another nice property is that as one abstracts away the > > pointer-to-char, ropes can be created lazily from IO or other > > generators of data. As an example, say that we want a String of > > one million a's s = "a" * 1000000 With a Rope, we could have > > written this as: r = Rope.new("a", 1000000) and that could be > > represented very efficiently. A better example is if we would like > > to search the concatenation of two strings for a regular > > expression. Using only Strings, we would have to write this as: > One related project is my old project called MetaRuby. I presented it > at the EuropçÊsche Ruby Konferenz 2004 (although I wrote all of the > code in 2001). Perhaps most importantly, Rope would be a built-in type in Ruby 2.0, at least in my virtual world where everything is the way I want it. The reason for this is of course that one would like to use these in code written in C as well as in Ruby and it makes it so much easier if this is actually part of the standard. Anyway, I didn't quite understand how your strings work. I didn't follow how your strings are created from other data. Perhaps http://artengine.ca/matju/MetaRuby/ wasn't the right url for this? You didn't specify one, nikolai -- ::: name: Nikolai Weibull :: aliases: pcp / lone-star / aka ::: ::: born: Chicago, IL USA :: loc atm: Gothenburg, Sweden ::: ::: page: www.pcppopper.org :: fun atm: gf,lps,ruby,lisp,war3 ::: main(){printf(&linux["\021%six\012\0"],(linux)["have"]+"fun"-97);}