public class EvenNumbers { public int get(int index) { return index * 2; } public bool contains(int i) { return i % 2 == 0; } public string to_string() { return "[This object enumerates even numbers]"; } public Iterator iterator() { return new Iterator(this); } public class Iterator { private int index; private EvenNumbers even; public Iterator(EvenNumbers even) { this.even = even; } public bool next() { return true; } public int get() { this.index++; return this.even[this.index - 1]; } } } void main() { var even = new EvenNumbers(); stdout.printf("%d\n", even[5]); if (4 in even) { stdout.printf(@"$even\n"); } foreach (var i in even) { stdout.printf("%d\n", i); if (i == 20) break; } }