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

Reply via email to