Jérôme M. Berger wrote:
Andrei Alexandrescu wrote:
Jérôme M. Berger wrote:
Andrei Alexandrescu wrote:
Jérôme M. Berger wrote:
Andrei Alexandrescu wrote:
Derek Parnell wrote:
It seems that D would benefit from having a standard syntax format for
expressing various range sets;
 a. Include begin Include end, i.e. []
 b. Include begin Exclude end, i.e. [)
 c. Exclude begin Include end, i.e. (]
 d. Exclude begin Exclude end, i.e. ()

I'm afraid this would majorly mess with pairing of parens.

I think Derek's point was to have *some* syntax to mean this, not necessarily the one he showed (which he showed because I believe that's the "standard" mathematical way to express it for English speakers). For example, we could say that [] is always inclusive and have another character which makes it exclusive like:
 a. Include begin Include end, i.e. [  a .. b  ]
 b. Include begin Exclude end, i.e. [  a .. b ^]
 c. Exclude begin Include end, i.e. [^ a .. b  ]
 d. Exclude begin Exclude end, i.e. [^ a .. b ^]

I think Walter's message really rendered the whole discussion moot. Post of the year:

=========================
I like:

   a .. b+1

to mean inclusive range.
=========================

Consider "+1]" a special symbol that means the range is to be closed to the right :o).

    Ah, but:
 - This is inconsistent between the left and right limit;
 - This only works for integers, not for floating point numbers.

How does it not work for floating point numbers?

Is that a trick question? Depending on the actual value of b, you might have b+1 == b (if b is large enough). Conversely, range a .. b+1 may contain a lot of extra numbers I may not want to include (like b+0.5)...

It wasn't a trick question, or it was of sorts. If you iterate with e.g. foreach through a floating-point range that has b == b + 1, you're bound to get in a lot of trouble because the running variable will be incremented.


Andrei

Reply via email to