[fpc-devel] for-in-index loop

Sven Barth pascaldragon at googlemail.com
Sat Jan 26 12:58:34 CET 2013


On 25.01.2013 23:41, Alexander Klenin wrote:
> On Sat, Jan 26, 2013 at 9:27 AM, Sven Barth <pascaldragon at googlemail.com> wrote:
>>
>> Regarding tuples:
>> http://wiki.oxygenelanguage.com/en/Tuples
> I know, but I consider this particular implementation an unpleasant example of
> "no need to change the language -- lets do it in the library" philosophy.
> Just look:
>> The Tuple type is a set of generic types with 1 up to 7 generic parameter types for the value types.
>> There also is an 8th Tuple type of which the 8th parameter type has to be another tuple.

I mean less the implementation specific details, but more the syntax 
they chose:

=== example begin ===

TTestTuple = tuple of (Integer, String, TObject);

var
   t: TTestTuple;
   i: Integer;
   s: String;
   o: TObject;
begin
   t := (42, 'Hello World', TObject.Create); // ok, this can be 
considered nightmarish syntax again... (see below)
   (i, s, o) := t;
   // and yes this could also provide the possibility for multiassignments
   (i, s, o) := (42, 'Hello World', TObject.Create);
end;

=== example end ===

The only thing I have a problem with is to use "(...)" as the syntax 
element for tuples... e.g. is "(42)" an integer or a "tuple of 
(Integer)"? We'd need to either enforce that "tuple of (...)" needs an 
element count > 1 or that "tuple of (SomeType)" is assignment compatible 
to just "SomeType" (we'd need something like this, because of backwards 
compatibility).

Regards,
Sven



More information about the fpc-devel mailing list