Показать сообщение отдельно
Старый 20.08.2013, 02:04
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 24  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нет, yield - это частный случай со-процедуры "только в одну сторону", относится к goto так же, как if относится к goto. Т.е. его можно реализовать с помощью.

Т.е. чтобы реализовать yield нужно сделать дополнительные операции, нужно 1. сохранить состояние вызывающей процедуры, 2. восстановить состояние вызваной процедуры, 3. выполнить код до следующего yield, 4. восстановить состояние вызывающей процедуры заполнив необходимые значения только что вычисленными. goto - только инструмент для манипуляции / осуществления переходов, но вообще кода для реализации yield нужно больше.
__________________
Hell is the possibility of sanity