外部の特殊変数は、別のMルーチンが値を返すために呼び出すことができるユーザ記述のMのサブルーチンです。
外部の特殊変数の形式は次のとおりです。
$$[label][^routinename]
オプションのラベル(label)とオプションのルチン名(routinename)は、外部関数を実行するサブルーチンの名前を指定するフォーマルラベル (formallabel)を構成しています。フォーマルラベル (formallabel)は、そのオプションのコンポーネントの少なくとも一つが含まれている必要があります。
外部の特殊変数は、入力パラメータなしの外部関数として考えることができます。$$x は、$$x() への操作と同等です。外部の特殊変数は、フォーマルラベル (formallabel) の呼び出しが 実要素リスト(actuallist)を必要としない唯一のケースです。 Mは、外部の特殊変数のために$TESTをスタックします。
Mは、引数を持って明示的にQUITコマンドで終了する外部の特殊変数を実装するルーチンが必要です。 Mは、外部の特殊変数の値として、QUITコマンドの引数の値を返します。
例:
GTM>ZPRINT ^DAYOWEEK DAYOWEEK();extrinsic special variable to ;provide the day of the week QUIT $ZD($H,"DAY") GTM>WRITE $$DAYOWEEK^DAYOWEEK MON