FUNCTION 區塊含有 HTML 區塊所呼叫的函數的宣告。 函數是由語言環境來處理,可執行程式、SQL 查詢或儲存程序。
下列範例顯示兩個 FUNCTION 區塊。一個定義外部 REXX 程式的呼叫, 另一個則含有列入 REXX 陳述式。
%{ ********************** FUNCTION 區塊 **********************************%}
%FUNCTION(DTW_REXX) rexx1 (IN input) returns(result) { <-- 此函數接受
一個參數,並傳回
變數 'result',這是
外部 REXX 程式指定的
變數
%EXEC{ompsamp.mbr %} <-- 函數會執行名稱如下的外部 REXX 程式:
"ompsamp.mbr"
%}
%FUNCTION(DTW_REXX) today () RETURNS(result) {
result = date() <-- 此函數的單一來源陳述式
是包含於列入程式中。
%}
第一個函數區塊 (rexx1) 為一個 REXX 函數宣告,它會執行名為 ompsamp.mbr 的外部 REXX 程式。 一個輸入變數 input 是由此函數來接受,且自動地傳送至外部 REXX 指令。 REXX 指令也會傳回一個稱為 result 的變數。 REXX 命令中 result 變數的內容, 會置換 OUTPUT 區塊中呼叫的 @rexx1() 函數呼叫。變數 input 和 result 可由 REXX程式直接存取, 請參閱 ompsamp.mbr 的原始程式:
/* REXX */ result = 'REXX 程式從巨集中收到 "'input'"。'
此函數中的程式碼會對傳給它的資料做出回應。 您可以使用一般的 mark-up 樣式標籤 (例如 <b> 或 <em>), 括住要求的 @rexx1() 函數呼叫,來按照自己的意思製作結果本文的格式。 不使用 result 變數,而是使用 REXX SAY 陳述式, REXX 程式即可將寫好的 HTML 陳述式以標準格式輸出。
第二個函數區塊,也參照 REXX 程式 today。不過, 本例中的整個 REXX 程式包含在其本身的函數宣告中。不需要一個外部程式。 REXX 和 Perl 函數都可接受列入 (inline) 程式, 這是因為它們皆為解譯過的語言,可動態解析及執行之。 列入程式不需用到另一個程式檔來管理,因此具有簡便上的好處。 第一個 REXX 函數也已用列入方式處理。