運算子宣告

在 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).