Iterators are executable members that help with the implementation of the iteration pattern.
An iterator is declared like any method, but the iterator keyword replaces the method mark:
Stack = class[X] // ... iterator Items: X; end;
The above iterator declaration is approximately equivalent to this method declaration:
method Items: IEnumerable[X];
An iterator must compute a sequence of values that will be consumed by another piece of code. To notify the consumer that another value is ready, you execute a yield statement with the computed value, as in the following example:
iterator Items: Integer; begin yield 0; yield 1; yield 2; end;
The previous iterator always returns three integers. This is a more complicated example:
iterator Items: X; begin for var i := 0 to Count - 1 do yield Items[i]; end;
The Freya Programming Language
Type declarations
Type members
Constructors
Methods
User defined operators
Fields
Properties
Events