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

### `nqt_match`

`nqt_match(Expr,Pattern[,Mode])`
  :: Expr が Pattern にマッチ(適合)すると 1 を戻す. しないと 0 を戻す.

return
  整数
Expr
  quote型
Pattern
  quote型
Mode
  整数

- Expr が Pattern にマッチ(適合)すると 1 を戻す. しないと 0 を戻す.
- 適合した場合, 副作用として, Pattern に含まれるプログラム変数(大文字ではじまる変数)に適合した値が代入される.
- nqt は normalized quote の略であり fnode標準形に変換してから適合検査をする. fnode標準形については section `qt_normalize` を見よ.
- Mode により展開方法を指定し, その展開方法により得られた Expr の fnode標準形と Pattern を比較する.

    ctrl("print_quote",2);
    A=quote((x-y)*(x+y));
    nqt_match(A,quote(P*Q));
    [P,Q]
        出力:  [x-y, x+y]
    nqt_match(A,quote(P*Q),1);
        マッチしない.
    nqt_match(A,quote(P*Q),2);
        マッチしない.
    qt_normalize(A,1);
        出力:  ((x)^(2))+((x)*(y))+((-1)*((y)^(2)))+((-1)*(y)*(x))
    qt_normalize(A,2);
        出力:  ((x)*(x))+((x)*(y))+((-1)*(y)*(x))+((-1)*(y)*(y))

`参照`
  section `nqt_match_rewrite`, section `qt_rewrite`

ChangeLog

- ----- まだ書いてない.

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