Generators allow us to control the flow of our code with the
yield keyword. We’ll create a Fibonacci number generator that contains an infinite loop (
while (true)). This is usually a big no-no, but using the
yield keyword, we can decide elsewhere when an iteration of the loop should run and we can pull numbers from the generator one at a time.