运算符声明

在 Prolog 中,可以使用 op/3 定义自定义运算符:

op(+Precedence, +Type, :Operator)

  • 将运算符声明为具有优先级的类型的运算符。运算符也可以是名称列表,在这种情况下,列表的所有元素都声明为相同的运算符。

  • 优先级是 0 到 1200 之间的整数,其中 0 删除声明。

  • 类型是以下之一:xfyfxfxxfyyfxfyfx 其中 f 表示仿函数的位置,xy 表示参数的位置。y 表示优先级低于或等于仿函数优先级的项,而 x 表示严格优先级较低的优先级。

    • 前缀:fxfy
    • 中缀:xfx(非关联),xfy(右关联),yfx(左关联)
    • 后缀:xfyf

用法示例:

:- op(900, xf, is_true).

X_0 is_true :-
  X_0.

示例查询:

?- dif(X, a) is_true.
dif(X, a).