leledumbo schreef:
OK, I've read http://wiki.freepascal.org/Modernised_Pascal this (and the
FAQ as well). I disagree with any statement saying that for .. in loop is
only a type-saver. It's a good language extension and should be included
(since Delphi already have this, it will also be a good idea). Consider the
following example:
type
TDays: (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
TDaySet: set of TDays;
var
d: TDaySet;
begin
for d in [Monday,Wednesday,Friday] do ;
// versus
for d:=Low(TDaySet) to High(TDaySet) do
if d in [Monday,Wednesday,Friday] then ;
end;
The latter one has iteration overheads, while the former can be optimized to
loop as many as needed. I'm not saying I'm the best Pascal programmer, but
in case there's a (better) solution to this (rather than extending the
language) please tell me.
You could write it like this:
type
TDays: (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
TDaySet: set of TDays;
var
d: TDays; // note the type
i: 0..2;
const
SomeDays: array[0..2] of TDays = (Monday,Wednesday,Friday);
begin
for i:=Low(SomeDays) to High(SomeDays) do
begin
d := SubSet[i];
end;
end;
And it loops as many times as necessary.
Vincent
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal