
20.08.2013, 02:04
|
|
|
Modus ponens
модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
|
Нет, yield - это частный случай со-процедуры "только в одну сторону", относится к goto так же, как if относится к goto. Т.е. его можно реализовать с помощью.
Т.е. чтобы реализовать yield нужно сделать дополнительные операции, нужно 1. сохранить состояние вызывающей процедуры, 2. восстановить состояние вызваной процедуры, 3. выполнить код до следующего yield, 4. восстановить состояние вызывающей процедуры заполнив необходимые значения только что вычисленными. goto - только инструмент для манипуляции / осуществления переходов, но вообще кода для реализации yield нужно больше.
__________________
Hell is the possibility of sanity
|