我需要定义一个以下列方式关联的新运算符
(1 newop 2) / (2 newop) / a
括号仅用于理解新op
的相关性所以
:- op(A, B, newop).
这是A和B的值。
提前致谢。
答案 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).