Код в Rexx обычно делится на функции и подпрограммы. Использование функций помогает разделить код на множество логических единиц. Давайте посмотрим на эти функции подробно.
Определение функции
Синтаксис объявления функции следующий:
FunctionName: PARSE ARG arguement1, arguement2… arguementN Return value
Куда,
-
Имя_функции — это имя, назначенное функции.
-
PARSE ARG — это ключевые слова в Rexx, которые используются, чтобы указать, что параметры передаются в функцию.
-
аргумент1, аргумент2… аргументN — это аргументы, переданные функции.
-
Возвращаемое значение — это значение, возвращаемое функцией.
Имя_функции — это имя, назначенное функции.
PARSE ARG — это ключевые слова в Rexx, которые используются, чтобы указать, что параметры передаются в функцию.
аргумент1, аргумент2… аргументN — это аргументы, переданные функции.
Возвращаемое значение — это значение, возвращаемое функцией.
Следующая программа является простым примером того, как функции используются в Rexx.
/* Main program */ say add(5,6) exit add: PARSE ARG a,b return a + b
Следующие вещи должны быть отмечены о вышеупомянутой программе —
-
Мы определяем функцию с именем add, которая принимает 2 параметра a и b.
-
Функция использует оператор return для возврата суммы a и b.
-
Оператор выхода должен использоваться для обозначения конца основной программы.
Мы определяем функцию с именем add, которая принимает 2 параметра a и b.
Функция использует оператор return для возврата суммы a и b.
Оператор выхода должен использоваться для обозначения конца основной программы.
Результат вышеупомянутой программы будет следующим:
11
Работа с аргументами
В Rexx есть специальные функции, которые можно настроить для работы с аргументами. Давайте посмотрим на пару таких аргументов.
Arg
Этот метод используется для возврата количества аргументов, определенных для функции.
Синтаксис —
arg()
Параметры — Нет
Возвращаемое значение — этот метод возвращает количество аргументов, определенных для функции.
Пример —
/* Main program */ say add(5,6) exit add: PARSE ARG a,b say arg() return a + b
Вывод. Когда мы запустим указанную выше программу, мы получим следующий результат.
2 11
Arg (индекс)
Этот метод используется для возврата значения аргумента в определенной позиции.
Синтаксис —
arg(index)
Параметр —
-
Index — индекс позиции возвращаемого аргумента.
Index — индекс позиции возвращаемого аргумента.
Возвращаемое значение — этот метод возвращает значение аргумента в определенной позиции.
Пример —
/* Main program */ say add(5,6) exit add: PARSE ARG a,b say arg(1) return a + b
Вывод. Когда мы запустим указанную выше программу, мы получим следующий результат.
5 11
Рекурсивные функции
Рекурсивная функция или подпрограмма — это та, которая вызывает сама себя. Любая рекурсивная функция может быть закодирована традиционным нерекурсивным способом (или итеративно), но иногда рекурсия предлагает лучшее решение проблемы. Не все языки программирования поддерживают рекурсию; Rexx делает.
Давайте рассмотрим пример знаменитой факториальной программы, использующей рекурсивные функции в Rexx.
/* Main program */ do n = 1 to 5 say 'The factorial of' n 'is:' factorial( n ) end return /* Function to get factorial */ factorial : procedure n = arg(1) if n = 1 then return 1 return n * factorial( n - 1 )
Вывод вышеуказанной программы следующий: