在使用运算符时控制括号

时间:2013-03-02 14:07:14

标签: prolog

使用用户定义的运算符时,Prolog有时会自动将括号添加/删除到涉及这些运算符的表达式。有没有办法控制这个?

非常感谢

2 个答案:

答案 0 :(得分:3)

只是通过描绘添加了parens。他们不是内部代表的一部分 的代码。您可以覆盖描绘以更改打印方式。请参阅portray_text

答案 1 :(得分:1)

运算符的定义如下:

:- op(Precedence, Associativity, Operator).

This answer对类似的问题解释了这一点,但简短的回答是Associativity选项控制了这一点; xfy使运算符左关联,yfx使运算符成为关联关系。 Precedence告诉Prolog在看到多个运算符时,如何确定哪个运算符是子表达式。