[fpc-devel] New feature discussion: for-in loop

Michael Van Canneyt michael at freepascal.org
Tue Oct 20 10:02:24 CEST 2009



On Tue, 20 Oct 2009, Graeme Geldenhuys wrote:

> 2009/10/20 Paul Ishenin <ip at kmiac.ru>:
>>
>> It is obvious you are full of energy to discuss new language features.
>
> :-)
>
>>
>> The next feature which we should think of is for-in loop:
>> http://wiki.lazarus.freepascal.org/for-in_loop
>
> As an alternative to the very limited "for-in", I have a better and
> more flexible design, using the Iterator design pattern. I have
> already written iterations for most of FPC's list components. It would
> be nice if the iterators could be part of the default list component
> and not as an external unit like I currently have.  I'm willing to do
> the work in merging my external iterators with the various list
> components. Just say the word.
>
> It allows you to write code as follows, irrespective of what list
> component you are working with.
>
>  MyIterator := MyList.GetIterator;
>  while MyIterator.HasNext do
>    ShowMessage(MyIterator.Next);
>
>
> The iterator interfaces has a lot more functions that just .HasNext and .Next.

Exactly.

I think that Graeme's approach is much better than the very unpascal-ish 
for Y in Someclass do
and would much prefer this to be implemented in the RTL.

Michael.



More information about the fpc-devel mailing list