UNLOOP: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
Снимает со [[Стек возвратов Каллисто|стека возвратов]] служебную информацию одного цикла [[FOR]] … [[NEXT]], что позволяет использовать слово [[EXIT]] для досрочного выхода из определения. Чтобы покинуть слово изнутри несколько вложенных циклов [[FOR]] … [[NEXT]], требуется предварительно выполнить слово UNLOOP нужное число раз. | Снимает со [[Стек возвратов Каллисто|стека возвратов]] служебную информацию одного цикла [[FOR]] … [[NEXT]], что позволяет использовать слово [[EXIT]] для досрочного выхода из определения. Чтобы покинуть слово изнутри несколько вложенных циклов [[FOR]] … [[NEXT]], требуется предварительно выполнить слово UNLOOP нужное число раз. | ||
== Ввод слова UNLOOP == | |||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша 6|{{Серая клавиша|6}}]] | |||
== UNLOOP в стандарте ANS Forth == | == UNLOOP в стандарте ANS Forth == |
Версия от 08:43, 23 февраля 2016
UNLOOP — стандартное слово Каллисто.
Снимает со стека возвратов служебную информацию одного цикла FOR … NEXT, что позволяет использовать слово EXIT для досрочного выхода из определения. Чтобы покинуть слово изнутри несколько вложенных циклов FOR … NEXT, требуется предварительно выполнить слово UNLOOP нужное число раз.
Ввод слова UNLOOP
В режиме ЛАТ последовательно нажмите клавиши 3 4 − 5 5 6
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
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |