定義ワード synonym
を使用すると、 他のワードと同一の振る舞いをするワードを名前で定義できます。 これが役立つ 2
つの状況を以下に示します:
root
ワードリストの定義を参照してください)。
THEN
と ENDIF
は同義語(synonyms)です)。
Synonym
( "name" "oldname" – ) tools-ext “Synonym”
oldname と同一に振る舞うように name を定義します。 つまり、 同一のインタプリタ機能(interpretation
semantics)と、 同一のコンパイル機能(compilation semantics)と、 同一の to
/defer!
や defer@
機能を持ちます。
Gforth は、 コンパイル機能、 または to
/defer!
や defer@
機能を親から継承しない、
非標準の alias
も提供します。 あなたは後で、 例えば immediate
などを使用してコンパイル機能などを変更できます。
Alias
( xt "name" – ) gforth-0.2 “Alias”
name を xt を実行するワードとして定義します。 defer された ワードとは異なり、 エイリアス(aliase)にはコンパイル時に間接的なオーバーヘッドがありません。
Example:
: foo ... ; immediate ' foo Alias bar1 \ bar1 is not an immediate word ' foo Alias bar2 immediate \ bar2 is an immediate word synonym bar3 foo \ bar3 is an immediate word
synonyms(同義語)とaliases(別名)はどちらも元の nt とは異なる nt を持ちますが、 それをチック(tick)すると(または
name>interpret
を使用すると)、 元の xt と同じ xt が生成されます(see Tokens for Words)。