Forth は、新しいコマンドワードの利用者定義を作成するための簡単な手段を提供します。表 4-3に、利用者定義作成用の Forth ワードを示します。
表 4-3 コロン定義ワード
コマンド |
スタックダイアグラム |
説明 |
---|---|---|
( -- ) |
ワード new-name の新しいコロン定義を開始します。 |
|
( -- ) |
コロン定義を終了します。 |
新しいコマンドの定義は、: 用いて定義することから、コロン定義と呼ばれます。たとえば、任意の 4 つの数値を加算し、結果を表示する新しいワード add4 を作成するとします。定義は、たとえば次のように作成できます。
ok : add4 + + + . ; ok |
; (セミコロン) は、(+ + + .)の操作を行わせるように add4 を定義する定義の終わりを示します。3 つの加算演算子 (+) は 4 つのスタック項目を 1 つの和に変えてスタックに残します。次に . はその結果を削除し、表示します。次に例を示します。.
ok 1 2 3 3 + + + . 9 ok 1 2 3 3 add4 9 ok |
これらの定義はローカルメモリーに格納されます。つまり、システムをリセットすると消去されるということです。よく使う定義を保存するには、(オペレーティングシステムのもとでテキストエディタを使用して、または NVRAMRC エディタを使用して) テキストファイルにそれらの定義を保存します。このテキストファイルは、以降、必要に応じて読み込めます。(ファイルの読み込みについての詳細は、第 5 章「プログラムの読み込みと実行」を参照してください。)
ユーザーインタフェースから定義を入力すると、: (コロン) を入力してから ; (セミコロン) を入力するまで、ok プロンプトが ] (右角括弧) プロンプトになります。たとえば、add4 の定義は次のように入力できます。
ok : add4 ] + + + ] . ] ; ok |
(テキストファイル内に) 作成するすべての定義には、そのスタック効果がない場合 (--) であっても、それぞれに、定義が表すスタック効果のダイアグラムが必要です。スタックダイアグラムは、ワードの正しい使い方を示すのできわめて重要です。さらに、複雑な定義内にはわかりやすいスタックコメントを使用してください。それによって、実行のフローを容易に追跡できます。たとえば、add4 を作成するには、次のように定義できます。
: add4 ( n1 n2 n3 n4 -- ) + + + . ; |
または、次のようにも定義できます。
: add4 ( n1 n2 n3 n4 -- ) + + + ( sum ) . ; |
「( 」(左側括弧) は、それ以降「 )」 (右側括弧) までのテキストを無視することを意味します。ほかのすべての Forth ワードと同様に、左側括弧の右側には 1 つまたはそれ以上の空白文字が必要です。