運算子宣告
在 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).