UNLOOP
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
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |