2

我需要定义一个以下列方式关联的新运算符

 (1 newop 2) / (2 newop) / a 

括号只是用来理解新操作的关联性

所以。

:- op(A, B, newop).

这将是 A 和 B 的值。

提前致谢。

4

2 回答 2

4

您想要的是newop既可用作 in 中的中缀运算符,(1 newop 2)也可用作 . 中的后缀运算符(2 newop)

这在 ISO Prolog 中是不可能的。在 ISO/IEC 13211-1:1995 的 6.3.4.3 小节中规定:

不能有同名的中缀和后缀运算符。

也就是说,有些实现仍然允许这样做。但是,请注意,此类实现通常以微妙的方式有所不同。

于 2014-06-01T17:36:13.150 回答
0

中缀运算符:xfx

precende 应该高于“/”

/ 的前导是 400

 :- op (300, xfx, newop).
于 2014-06-01T17:19:24.847 回答