Re[5]: 1. Простые питоноподобные генераторы
От: Spiceman  
Дата: 23.06.09 08:15
Оценка:
Здравствуйте, 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? Какое оно дает преимущество?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.