Andrei,

I note that your specific criticisms of Steve's proposal all relate to the "random-access" of the bidirectional code-point range. This is essentially my objection too.

As you are the key person to determine whether it is adopted, what do you think of the remainder of his proposal?

Apart from the indexing and slicing of code-points I see a lot of merit to the proposal, especially that it would mean that std.algorithm would not need to special-case for strings any more. It would need only be concerned about whether it has a random-access range or a bidirectional range. The user could choose whether to pass to std.algorithm any of:

* a random-access code-unit range
* a bidirectional code-point range
* a bidirectional grapheme range, etc according to the outcome of the other discussions

In the interest of moving this on, would it become acceptable to you if:

1. indexing and slicing of the code-point range were removed?
2. any additional ranges are exposed to the user according to decisions made about graphemes, etc?
3. other constructive criticisms were accommodated?

Steve


On 15/01/11 03:33, Andrei Alexandrescu wrote:
On 1/14/11 5:06 AM, Steven Schveighoffer wrote:
I respectfully disagree. A stream built on fixed-sized units, but with
variable length elements, where you can determine the start of an
element in O(1) time given a random index absolutely provides
random-access. It just doesn't provide length.

I equally respectfully disagree. I think random access is defined as
accessing the ith element in O(1) time. That's not the case here.

Andrei

Reply via email to