Язык процедур 2-REXX для OS-2


Функции - часть 2


/p>

Примечания:

  1. Вызов внешней программы REXX как функции аналогичен вызову внутренней программы. Однако внешняя программа является неявной ПРОЦЕДУРОЙ, в которой всегда удаляются все переменные вызывающей программы и состояние внутренних значений (назначения NUMERIC и т.д.) принимается по умолчанию (а не передаются из вызывающей программы).

  2. Другие программы REXX могут быть вызваны как функции. Вы можете использовать инструкции EXIT или RETURN для выхода из вызванной программы REXX; в любом случае нужно указать выражение.

Порядок просмотра

Порядок поиска функций аналогичен порядку их описания в этом разделе. Внутренние метки имеют наивысший приоритет, затем следуют встроенные функции, а последними идут внешние функции.

Внутренние метки не могут использоваться, если имя функции подается в качестве строки (указано в кавычках); в этом случае функция должна быть встроенной или внешней. Это позволяет Вам захватить имя, например, встроенной функции и расширить ее возможности; при этом исходную функцию можно при необходимости продолжать вызывать как встроенную.

Пример: /* Модифицированная DATE, выдающая по умолчанию отсортированную дату */ date: procedure arg in if in='' then in='Sorted' return 'DATE'(in)

Встроенные функции имеют имена, набранные прописными буквами. Для успешного поиска встроенной функции имя в текстовой строке должно быть указано прописными буквами, как это показано в предыдущем примере. Это справедливо и для внешних функций.

Внешние функции и подпрограммы имеют системно-зависимый порядок поиска.

REXX осуществляет поиск внешних функций в следующем порядке:

  1. Функции, которые были загружены в макропространство для внеочередного выполнения
  2. Функции, являющиеся частью пакета функций
  3. Функции REXX, расположенные в текущем каталоге, с текущим расширением
  4. Функции REXX, расположенные по пути, заданному переменной среды PATH, с текущим расширением
  5. Функции REXX, расположенные в текущем каталоге, со стандартным расширением
  6. Функции REXX, расположенные по пути, заданному переменной среды PATH, со стандартным расширением
  7. Функции, которые были загружены в макропространство для выполнения в последнюю очередь.




- Начало -  - Назад -  - Вперед -