在prolog中定义运算符

时间:2014-06-01 17:12:16

标签: prolog operators iso-prolog

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

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

括号仅用于理解新op

的相关性

所以

:- op(A, B, newop).

这是A和B的值。

提前致谢。

2 个答案:

答案 0 :(得分:4)

您想要的是newop既可以作为(1 newop 2)中的中缀运算符,也可以作为(2 newop)中的后缀运算符。

这在ISO Prolog中是不可能的。在ISO / IEC 13211-1:1995的子条款6.3.4.3中,陈述:

  

不应存在具有相同名称的中缀和后缀运算符。

也就是说,有些实现仍然允许这样做。但请注意,此类实现在subtle ways中有所不同。

答案 1 :(得分:0)

中缀运算符:xfx

precende应该高​​于" /"

pre为/是400

 :- op (300, xfx, newop).