Поясніть різницю між генератором і звичайною функцією. Навіщо потрібен yield?
Звичайна функція обчислює все і повертає один раз; генератор призупиняється на кожному yield і відновлюється з того ж місця, віддаючи значення ліниво. Це означає сталу витрату памʼяті незалежно від кількості елементів, тому можна ітеруватися по файлу в гігабайти або по нескінченній послідовності. Саме yield перетворює функцію на скінченний автомат, який інтерпретатор уміє ставити на паузу.