运算符声明
在 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).