【发布时间】:2013-03-02 14:07:14
【问题描述】:
使用用户定义的运算符时,Prolog 有时会自动添加/删除涉及这些运算符的表达式的括号。有办法控制吗?
非常感谢
【问题讨论】:
标签: prolog
使用用户定义的运算符时,Prolog 有时会自动添加/删除涉及这些运算符的表达式的括号。有办法控制吗?
非常感谢
【问题讨论】:
标签: prolog
括号只是通过描绘添加。它们不是内部表示的一部分 的代码。您可以覆盖描绘以更改事物的打印方式。见描述文本
【讨论】:
一个操作符是这样定义的:
:- op(Precedence, Associativity, Operator).
This answer to a similar question解释了这一点,但简短的回答是Associativity选项控制这一点; xfy 使运算符左结合,yfx 使运算符右结合。 Precedence 告诉 Prolog 在看到多个运算符时如何决定哪个运算符是子表达式。
【讨论】: