Exercise 11: Lazy Evaluation (generator)

Problem Statement

Create a function `lazyRange(start, end)` that returns a generator function that lazily generates values.

Sample Output:

const range = lazyRange(1, 5);
range.next().value => 1
range.next().value => 2

Solution

function* lazyRange(start, end) {
  for (let i = start; i <= end; i++) yield i;
}

Explanation

Overall Goal:

  • Generator function se lazy evaluation implement karna.

Real world:

  • Memory efficiency: large sequences.
  • Infinite sequences: on-demand generation.