[fpc-devel] for-in-index loop

Sven Barth pascaldragon at googlemail.com
Fri Jan 25 23:31:56 CET 2013


On 25.01.2013 23:20, Mark Morgan Lloyd wrote:
> Sven Barth wrote:
>> On 25.01.2013 21:10, Mark Morgan Lloyd wrote:
>>> Something like
>>>
>>>  >>>>    for a in a index i do
>>>
>>> falls squarely into the latter category: it's messy to parse, worse to
>>> read, and is completely unlike any existing language idioms.
>>>
>>
>> I definitely have to disagree here (while still not having an opinion
>> on the topic "for-in-index" itself): once you've worked on Delphi
>> style generics you know what messy parsing is... and I already get
>> nightmares thinking about what I still need to add for Delphi's
>> generics support... This for-in-index is a peace of cake to parse in
>> comparison.
>
> I wasn't trying to say that it was easy so much as it would have been
> worse if it weren't for the unambiguous delimiters.
>

After implementing support for Delphi style generics I came to the 
conclusion that I would have preferred the following syntax:

type
   TFPGListLongInt = specialize TFPGList as (Integer);

or

type
   TFPGListLongInt = specialize TFPGList with (Integer);

This could also have appeared inline without to many headaches. For the 
first one the "specialize" keyword would have definitely been necessary, 
but for second syntax idea it would have worked without the "specialize" 
keyword as well...

> In fact I bet that with what you know now you'd be able to move generic
> support into a run-time library loaded when the <> idiom was recognised.
>

No, I wouldn't. This would make the code in no way more maintainable or 
even more understandable. Quite the contrary.

Regards,
Sven



More information about the fpc-devel mailing list