"Анри Бертьен. Стандартный набор операторов языка REXX (для OS/2) " - читать интересную книгу автора

8. Выполнение операторов, расположенных внутри цикла.
9. Вычисление значения <выраж. 'UNTIL'> и прекращение выполнения цикла
в случае, если условие UNTIL удовлетворено (то есть значение <выраж.
'UNTIL'> равно 1)..
10. Обновление текущего значения управляющей переменной (путём
добавления значения <выраж. 'BY'>.
11. Переход к пункту 5.


DROP - отмена значений, присвоенных указанным переменным.

Формат:

Drop <список переменных>

Где <список переменных> представляет собой перечень имён переменных,
значения которых следует отменить ('сбросить'), имена отделяются друг от
друга пробелами.

При этом:
- после выполнения оператора DROP указанные переменные будут в таком
состоянии, как будто им вообще ещё не присваивали значений (т. е. в
начальном, непроинициализированном состоянии);
- если среди перечисленных имён встретится имя корня (то есть имя,
заканчивающееся точкой), то будут сброшены все переменные, имена которых
начинаются с этого корня;
- отмена значений производится в порядке расположения имён в списке;
- не считается ошибкой, если в списке встретится переменная, не имеющая
значения (или одно и то же имя указано более одного раза).

Например:

X=1
Y=2
A='Freddy'
Say a x y /* Выведет: 'Freddy 1 2' */
Say a x+y /* Выведет: 'Freddy 3' */
Drop x y /* Отменит переменные x и y */
Say a x y /* Выведет: 'Freddy X Y' */
Say a x+y /* Вызовет ошибку интерпретации в результате попытки
сложить нечисловые значения X и Y. */

A.1=3
A.2=4
N=2
Say a.1 a.2 /* Выведет: '3 4' */
Drop a.n /* Отменит переменную A.2 */
Say a.1 a.2 /* Выведет: '3 A.2' */
Drop a. /* Отменит все переменные, имена которых начинаются с 'A.' */
Say a.1 a.2 /* Выведет: 'A.1 A.2' */