From fb277d105c273a096b5198e461f45d059368e0a2 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Sat, 15 Aug 2015 13:46:56 +0300 Subject: [PATCH] Vala: EvenNumbers. --- vala/EvenNumbers/main.vala | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 vala/EvenNumbers/main.vala diff --git a/vala/EvenNumbers/main.vala b/vala/EvenNumbers/main.vala new file mode 100644 index 0000000..2210822 --- /dev/null +++ b/vala/EvenNumbers/main.vala @@ -0,0 +1,47 @@ +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; + } +}