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