[fpc-devel] New feature discussion: for-in loop
    Michael Van Canneyt 
    michael at freepascal.org
       
    Wed Oct 21 15:26:20 CEST 2009
    
    
  
On Wed, 21 Oct 2009, Alexander Klenin wrote:
> On Wed, Oct 21, 2009 at 23:15, Michael Van Canneyt
> <michael at freepascal.org> wrote:
>
>> This is all just nitpicking. Iterators as a language construct are a very ugly
>> hack to save some typing, no matter how you turn it. Nice maybe for
>> languages with dynamic typing and so on, but really not on it's place in Pascal.
>
> I beg to disagree.This is completely backwards -- like saying that
> "while" loop is an
> ugly hack to save some typing of "goto" operators.
> Iterators and foreach loops are very important tools of structured coding.
> The fact that "for..in" may be expressed in terms of lower-level primitives
> does not decrease its importance, just like existence of "goto" does
> not decrease
> the importance of "while".
Well, I think you can't compare the two cases.
I see little gain in changing
   while Something(f) do
     F.Somethingelse
to
   For f in Something do
     F.SomethingElse
The number of lines is equal, the amount of typed characters also is equal.
It's not more readable, either, IMHO.
When there is a big difference between the following goto and the while loop
it is supposed to be equal to:
   :jumphere;
   If Something(F) then
     begin
     F.SomeThingElse;
     Goto jumphere;
     end;
Here you need quite a few more lines and even an extra label definition, and
I don't think anyone will dispute that the while loop is more readable...
Michael.
    
    
More information about the fpc-devel
mailing list