Hint
Generators produce values lazily — perfect for ranges, sequences, and infinite streams.
function* range(start, end) {
for (let i = start; i <= end; i++) yield i;
}
const sum = [...range(1, 5)].reduce((a, b) => a + b, 0);
console.log(sum);15
Explanation: range(1,5) yields 1,2,3,4,5. Spread collects them. reduce sums: 15.
Key Insight: Generators produce values lazily — perfect for ranges, sequences, and infinite streams.