他の言語では、 関数(function)のパラメーターに任意の順序を使用できます。 また、 結果は 1 つだけなので、 結果の順序を扱う必要もありません。
Forth (および他のスタック・ベースの言語、 たとえば PostScript)では、 定義のパラメーターの順序と結果の順序が重要であり、 適切に設計する必要があります。 一般的なガイドラインは、 ワードの実装が複雑になる場合でも、 ワードがほとんどの場合に簡単に使用できるようにスタック効果を設計することです。 いくつかの具体的なルールは以下のとおりです:
.
)。
-
)。
!
(「ストア」 see Memory)は、
通常、 格納されている値よりも計算が簡単であるため、 スタック頂上にアドレスがあるのを期待します(多くの場合、 アドレスは単なる変数です)。
open-file
のようなファイル・ワードは、スタック頂上にエラー・コードを返します。 これは、 通常、 throw
によってすぐに消費されるためです。
さらに言えば、 他の結果に対して何かを行う前に、 エラー・コードをチェックする必要があります。
これらのルールは一般的なガイドラインに過ぎません。 ワードを使いやすくするという全体的な目標を見失わないでください。 例えば、 慣習のルールが計算長のルールと衝突する場合、 ワードがあまり使われない場合は慣習を優先するかもしれません。 一方、 ワードが頻繁に使われる場合は、 計算長のルールを優先するかもしれません(だからといって頻繁に使うと、 計算長のルールを破るコストが非常に高くなりますし、 頻繁に使うことで非慣習的な順序を覚えてしまいがちになります)。