UNLOOP: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) (→Ссылки) |
||
Строка 35: | Строка 35: | ||
== Ссылки == | == Ссылки == | ||
* [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2380 | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2380 UNLOOP] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.2380 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | ||
* [http://www.forth200x.org/documents/ | * Слово [http://www.forth200x.org/documents/html3/core/UNLOOP.html UNLOOP] и [http://www.forth200x.org/documents/html3/rationale.html#rat:core:UNLOOP комментарий к нему] в черновике Forth 200x ''(англ.)'' | ||
* См. также слово [[LEAVE]] | * См. также слово [[LEAVE]] | ||
Версия от 01:30, 23 февраля 2016
UNLOOP — стандартное слово Каллисто.
Снимает со стека возвратов служебную информацию одного цикла FOR … NEXT, что позволяет использовать слово EXIT для досрочного выхода из определения. Чтобы покинуть слово изнутри несколько вложенных циклов FOR … NEXT, требуется предварительно выполнить слово UNLOOP нужное число раз.
UNLOOP в стандарте ANS Forth
6.1.2380 UNLOOP CORE Интерпретация: Семантика интерпретации для этого слова не определена.
Выполнение: ( -- ) ( R: loop-sys -- ) Снимает параметры управления циклом для текущего уровня вложенности. UNLOOP требуется для каждого уровня вложенности прежде, чем может быть выполнено EXIT определения. Неопределенная ситуация существует если параметры управления циклом недоступны.
См.: 3.2.3.3 Стек возвратов.
A.6.1.2380 UNLOOP Типичное использование: : X ... limit first DO ... test IF ... UNLOOP EXIT THEN ... LOOP ... ;
UNLOOP позволяет использование EXIT в пределах контекста, DO ... LOOP и связанной do-loop конструкции. UNLOOP как функция был назван UNDO. UNLOOP более выражает действие: ничто не отменяется - мы просто прекращаем делать это.
Замечание
Хотя в стандарте ANS Forth это явно не указано, после слова UNLOOP должно быть исполнено слово EXIT. Конечно, между ними могут быть выполнены и другие действия. Но если EXIT не будет выполнен до конца цикла, ситуация станет неопределённой.
Ссылки
- Слово UNLOOP и комментарий к нему в стандарте ANS Forth (англ.)
- Слово UNLOOP и комментарий к нему в черновике Forth 200x (англ.)
- См. также слово LEAVE
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |