VLERange: a range in between BidirectionalRange and RandomAccessRange

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Jan 17 18:52:58 PST 2011


On 1/17/11 5:13 PM, spir wrote:
> On 01/17/2011 07:57 PM, Andrei Alexandrescu wrote:
>> * Line 130: representing a text as a dchar[][] has its advantages but
>> major efficiency issues. To be frank I think it's a disaster. I think a
>> representation building on UTF strings directly is bound to be vastly
>> better.
>
> I don't understand your point. Where is the difference with D's builtin
> types, then?

Unfortunately I won't have much time to discuss all these points, but 
this is a simple one: using dchar[][] wastes memory and time. You need 
to build on a flatter representation. Don't confuse the abstraction you 
are building with its underlying representation. The difference between 
your abstraction and char[]/wchar[]/dchar[] (which I strongly recommend 
you to build on) is that the abstractions offer different, higher-level 
primitives that the representation doesn't.

Let me repeat again: if anyone in this community wants to put work in a 
forward range that iterates one grapheme at a time, that work would be 
very valuable because it will allow us to experiment with graphemes in a 
non-disruptive way while benefiting of a host of algorithms. ByGrapheme 
and friends will help more than defining new string types.


Andrei


More information about the Digitalmars-d mailing list