dmd 1.046 and 2.031 releases

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Jul 7 12:29:00 PDT 2009


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


More information about the Digitalmars-d-announce mailing list