Rozpoczynamy lekcje o generatorach. Poznajemy ich najłatwiejsze zastosowania pisząc bardzo proste funkcje range.
Funkcja range (jak w PHP):
function* range(from, to){
let i = from;
while(i <= to)
yield i++;
}
for(let num of range(1,3))
console.log(num);
//1
//2
//3
Funkcja range jak w Pythonie:
function* pyRange(from, to){
let i = from;
while(i < to)
yield i++;
}
for(let num of pyRange(1,4))
console.log(num);
//1
//2
//3
Funkcja charRange (do wyrzucania liter/znaków z określonego zakresu):
function* charRange(charStart, charEnd){
let from = charStart.charCodeAt(0);
let to = charEnd.charCodeAt(0);
let i = from;
while(i <= to)
yield String.fromCharCode(i++);
}
for(let letter of charRange("A", "C"))
console.log(letter);
//A
//B
//C
Więcej o generatorach w następnych lekcjach.