運算子宣告
在 Prolog 中,可以使用 op/3
定義自定義運算子:
op(+Precedence, +Type, :Operator)
-
將運算子宣告為具有優先順序的型別的運算子。運算子也可以是名稱列表,在這種情況下,列表的所有元素都宣告為相同的運算子。
-
優先順序是 0 到 1200 之間的整數,其中 0 刪除宣告。
-
型別是以下之一:
xf
,yf
,xfx
,xfy
,yfx
,fy
或fx
其中f
表示仿函式的位置,x
和y
表示引數的位置。y
表示優先順序低於或等於仿函式優先順序的項,而x
表示嚴格優先順序較低的優先順序。- 字首:
fx
,fy
- 中綴:
xfx
(非關聯),xfy
(右關聯),yfx
(左關聯) - 字尾:
xf
,yf
- 字首:
用法示例:
:- op(900, xf, is_true).
X_0 is_true :-
X_0.
示例查詢:
?- dif(X, a) is_true.
dif(X, a).