Рассмотрим простой перечислитель, подобный этому:
natural_numbers = Enumerator.new do |yielder|
number = 1
loop do
yielder.yield number
number += 1
end
end
Мой вопрос таков: почему ruby требует, чтобы мы вызывали yield для объекта урожайности? Сказал по-другому: почему мы не можем заменить yielder.yield number
на yield number
? В этом примере, казалось бы, было бы то же самое, если бы это было разрешено. Существуют ли примеры, где урожай используется нетривиальным образом? Если да, можете ли вы дать один? Если нет, то какова цель урожая?
Спасибо.