⚡ Generatory
Generatory to funkcje które mogą "yield-ować" wartości jedna po drugiej.
Podstawowy generator
fn* counter(max) {
for (i in 1..max) {
yield i;
}
}
let gen = counter(5);
print(generatorNext(gen));
print(generatorNext(gen));
let rest = generatorCollect(gen);
Nieskończony generator
fn* naturalNumbers() {
let n = 1;
while (true) {
yield n;
n = n + 1;
}
}
let nums = naturalNumbers();
print(generatorNext(nums).value);
print(generatorNext(nums).value);
print(generatorNext(nums).value);
Generator Fibonacci
fn* fibonacci() {
let a = 0, b = 1;
while (true) {
yield a;
let temp = a + b;
a = b;
b = temp;
}
}
let fib = fibonacci();
repeat 10 {
print(generatorNext(fib).value);
}