次の方法で関連付ける新しい演算子を定義する必要があります
(1 newop 2) / (2 newop) / a
括弧は、新しい op の結合性を理解するために使用されました。
そう。
:- op(A, B, newop).
A と B の値はどちらになりますか。
前もって感謝します。
次の方法で関連付ける新しい演算子を定義する必要があります
(1 newop 2) / (2 newop) / a
括弧は、新しい op の結合性を理解するために使用されました。
そう。
:- op(A, B, newop).
A と B の値はどちらになりますか。
前もって感謝します。
あなたが望むのは、newop
in のような中置演算子と in(1 newop 2)
のような後置演算子の両方として機能することです(2 newop)
。
これは ISO Prolog では不可能です。ISO/IEC 13211-1:1995 の 6.3.4.3 節では、次のように述べられています。
同じ名前の中置演算子と後置演算子があってはなりません。
とはいえ、これを許可する実装もあります。ただし、そのような実装は微妙に異なることが多いことに注意してください。
中置演算子: xfx
優先順位は「/」より高くする必要があります
/ の優先順位は 400 です
:- op (300, xfx, newop).