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