Next: , Previous: , Up: Forth Tutorial   [Contents][Index]


3.9 Colon Definitions

コロン定義(Colon Definitions)は、 他のプログラミング言語のプロシージャや関数に似ています。

: squared ( n -- n^2 )
   dup * ;
5 squared .
7 squared .

: はコロン定義を開始します。 その名前は squared です。 それに続くコメントは、 そのスタック効果について説明しています。 dup * というワードは実行はされませんが、 定義にコンパイルされます(compiled into the definition)。 ; はコロン定義を終了します。

新しく定義されたワードは、 他の定義での使用を含め、 他のワードと同様に使用できます:

: cubed ( n -- n^3 )
   dup squared * ;
-5 cubed .
: fourth-power ( n -- n^4 )
   squared squared ;
3 fourth-power .

研究課題(assignment): niptucknegate/mod のコロン定義を他の Forth ワードで記述し、 それらが機能するかどうかを確認してみましょう (ヒント: 最初にオリジナルであなたの作成したテストコードをテストして結果を確認してから、 その後あなたが定義して、 再度テストして結果を比較しましょう)。 ‘redefine’ メッセージに驚かないでください。 これらは単なる警告です。 (訳注: redefine; 同じ名前のワードを定義したという警告。 置き換えではなく追加となる。 これ以降の通訳(interpret)・コンパイルは新しい方のワードを参照するが、 通常は新しい方のワード定義後も、 既にコンパイル済みのワードは古い方のワードを参照しつづける。 詳しくはディクショナリ等の項目を参照)

こちらも参照してください: Colon Definitions