Go to the first, previous, next, last section, table of contents.


書替え規則入門

書替え規則は通常、"割付け"演算子 `old := new' を使います。 この演算子は `assign(old, new)' 関数呼出しと同等です。 Calc において assign 関数はそれ自身未定義なので、 書替え規則のような割付け式は、通常の Calc コマンドには放置されます。 しかし、書替えシステムのような特定のコマンドは、 特別な方法で割付けを解釈します。

例えば規則 `sin(x)^2 := 1-cos(x)^2' は、 あらゆる「何かのサインの二乗」を「1 ひく同じ何かのコサインの二乗」で置換せよ、 という意味です。 スタック上の式としては自ら何もしませんが、 a r コマンドに対して与えられると、 そのコマンドは「サイン二乗-コサイン二乗」変換コマンドになります。

同時に適用する規則集合を指定するには、規則のベクトルを作ってください。

a r コマンドがプロンプトを出して書替え規則の入力を促されたとき、 答える方法はいくつかあります。

  1. 規則を入力: f(x) := g(x) RET
  2. 規則のベクトルを入力: [f1(x) := g1(x), f2(x) := g2(x)] RET (カッコは省略できます。)
  3. 規則や規則集合をストアした変数名で答える: myrules RET
  4. 規則以外の式, ベクトル, 変数名; これは書替え規則の old 部分として解釈され、 その後 new 部分の入力を促す第2のプロンプトが出ます : f(x) RET g(x) RET
  5. 空行を入力した場合、 規則か規則ベクトルまたは変数がスタック top から取得されます (そして書替えるべき式はスタックの2番目から取得されます)。

規則を直接入力すると(変数にストアして使う場合と異なり)、 その規則はトレイルに記録されるので、後で再利用できます。 トレイル関連コマンド群 参照 。

よく使う規則は変数にストアしておいて、変数名で呼出すのが一番お手軽です。 s e (calc-edit-variable) コマンドを使うと、 簡単に規則群を作ったり編集して変数にストアできます。 s p (calc-permanent-variable) を使うと、 規則を永久に保存できます; その他の変数操作 参照 。

書替え規則は、速度向上のため特別な内部形式にコンパイルされます。 規則群を変数にストアし変数を参照する場合は、 後の参照に備え、いったんコンパイルしてから保存されます。 これが変数利用のもうひとつの利点です。

Calc は旧式の規則表記法であるベクトル形式 `[old, new]' も受付けます。 しかしこれは2つの規則のベクトルと混同しやすいので、 この表記法はもはやお勧めしません。


Go to the first, previous, next, last section, table of contents.     利用度数