Здравствуйте, Mr.Cat, Вы писали:
MC>А наш вариант на scheme позволит писать вот так (пожалуй, стоило включить подобный пример в текст):
MC>MC>(define-generator (fib)
MC> (let fib/iter ((curr 1)
MC> (next 1))
MC> (yield curr)
MC> (fib/iter next (+ curr next))))
MC>
MC>Результатом этого выражения будет бесконечный стрим чисел фибоначчи.
MC>Можно было бы еще рекурсивно извратиться с помощью yield-splice, однако в нашем варианте невозможны хвостовые вызовы между генераторами, так что за пределы генератора лучше лишний раз не выходить.
Я не спец, извиняюсь за глупые вопросы, но почему нельзя было просто написать бесконечный поток чисел фибоначчи? Зачем нам обязательно yield? Какое оно дает преимущество?