| 与えられた演算子に従って、2つの項の関係を検査する。
+項1 == +項2
+項1 \== +項2
+項1 @< +項2
+項1 @=< +項2
+項1 @> +項2
+項1 @>= +項2
これらの述語は、 項1 と項2の関係を検査する。.
様々な型の項は、以下の関係を持っている。
変数 < 浮動小数点数
浮動小数点数 < 整数
整数 < アトム
アトム < 複合項 (構造)
同じ型の項は、以下の順序を持っている。
| 項型
| 順序
|
| 変数
| 特別な順序を持たない。
|
| 浮動小数点数
| 数学的順序
|
| 整数
| 数学的順序
|
| アトム
| 文字順
|
| 複合項
| まず、それらのアリティで順序づけられる。
もし、同じアリティを持っていれば、その関数子の名前で順序づけられる。
もし、同じアリティ、関数子を持っていれば、最初に始まる引数で順序づけられる。
|
| 演算子 op |
意味 |
| == |
項は同じ |
| \== |
項は同じではない |
| @> |
左辺項は、右辺項より大きい。 |
| @>= |
左辺項は、右辺項と等しいか、大きい。 |
| @< |
左辺項は、右辺項より小さい |
| @=< |
左辺項は、右辺項と等しいか、小さい。 |
'==', '\==', '@<', '@=<', '@>', '@>=' は、組み込み挿入演算子です。優先順位クラスは700で、非結合性である。
(関連 current_op/3).
引数
項1 項
項2 項
例
------- == -------
X=5, f(X) == f(5). X <- 5 の代入で成功。
X= f(A,B), X= f(g(C,D), g(C,D)), A==B).
X <- f(g(C,D), g(C,D), A <- g(C,D), B <- g(C,D) の代入で成功。
f(X) == f(Y). 失敗。
1 == 1.0 失敗。
------- \== -------
f(X) \== f(Y). 成功。
f(X,Y) \== f(X,a). 成功。
1.0e+2 \== 100. 失敗。
X=a, f(X,Y) \== f(a,Y). 失敗。
------- @< -------
f(a) @< f(b). 成功。
f(1,X) @< f(2,X). 成功。
'@<'(f(a,b), g(a,b)). 成功。
f(a,b) @< g(a). 失敗。
------- @=< -------
f(a) @=< f(b). 成功。
12 @=< 12. 成功。
'@=<'(X, Y). 成功。
text @=< texas 失敗。
------- > --------
text @> texas. 成功。
f(a,b) @> f(a). 成功。
f(a,b) @> g(a,b). 失敗。
'@>'(f(Y,X), f(X,Y). 失敗。
------- >= -------
text @>= text. 成功。
'@>='(1, 1.0). 成功。
f(a) @>= f(b). 失敗。
標準
これらの述語は、ISO-Prolog 標準に含まれる。
|