Rexx - Функции
Код в Rexx обычно делится на функции и подпрограммы. Использование функций помогает разделить код на множество логических единиц. Давайте подробно рассмотрим эти функции.
Определение функции
Синтаксис объявления функции следующий:
FunctionName:
PARSE ARG arguement1, arguement2… arguementN
Return value
Где,
FunctionName - Это имя, присвоенное функции.
PARSE ARG - Это ключевые слова в Rexx, которые используются для упоминания о том, что параметры передаются в функцию.
arguement1, arguement2… arguementN - Это аргументы, переданные функции.
Return value - Это значение, возвращаемое функцией.
Следующая программа представляет собой простой пример использования функций в Rexx.
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
return a + b
Следующие вещи следует отметить об указанной выше программе:
Мы определяем функцию с именем add, которая принимает 2 параметра a и b.
Функция использует оператор return для возврата суммы a и b.
Оператор выхода должен использоваться для обозначения конца основной программы.
Результат вышеупомянутой программы будет следующим:
11
Работа с аргументами
В Rexx есть специальные функции, которые можно заставить работать с аргументами. Давайте рассмотрим парочку таких аргументов.
аргумент
Этот метод используется для возврата количества аргументов, определенных для функции.
Syntax -
arg()
Parameters - нет
Return Value - Этот метод возвращает количество аргументов, определенных для функции.
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg()
return a + b
Output - Когда мы запустим указанную выше программу, мы получим следующий результат.
2
11
arg (индекс)
Этот метод используется для возврата значения аргумента в определенной позиции.
Syntax -
arg(index)
Parameter -
Index - Индексная позиция возвращаемого аргумента.
Return Value - Этот метод возвращает значение аргумента в определенной позиции.
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg(1)
return a + b
Output - Когда мы запустим указанную выше программу, мы получим следующий результат.
5
11
Рекурсивные функции
Рекурсивная функция или процедура - это функция, которая вызывает сама себя. Любая рекурсивная функция может быть закодирована традиционным нерекурсивным способом (или итеративно), но иногда рекурсия предлагает лучшее решение проблемы. Не все языки программирования поддерживают рекурсию; Рекс делает.
Давайте посмотрим на пример известной факториальной программы, использующей рекурсивные функции в 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 )
Результат вышеупомянутой программы выглядит следующим образом -
The factorial of 1 is: 1
The factorial of 2 is: 2
The factorial of 3 is: 6
The factorial of 3 is: 24
The factorial of 3 is: 120