【问题标题】:Controlling parenthesis while working with operators与运算符一起使用时控制括号
【发布时间】:2013-03-02 14:07:14
【问题描述】:

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

非常感谢

【问题讨论】:

    标签: prolog


    【解决方案1】:

    括号只是通过描绘添加。它们不是内部表示的一部分 的代码。您可以覆盖描绘以更改事物的打印方式。见描述文本

    【讨论】:

      【解决方案2】:

      一个操作符是这样定义的:

      :- op(Precedence, Associativity, Operator).
      

      This answer to a similar question解释了这一点,但简短的回答是Associativity选项控制这一点; xfy 使运算符左结合,yfx 使运算符右结合。 Precedence 告诉 Prolog 在看到多个运算符时如何决定哪个运算符是子表达式。

      【讨论】:

      • 感谢您的解释。我不清楚的是,是否可以删除 Prolog 添加到我的表达式中的一些额外括号,或者这是默认值??
      • 我不这么认为。这是一个问题还是只是审美上令人不快?
      • 它在美学上令人不快,我想知道是否有办法覆盖它。
      猜你喜欢
      • 2012-05-08
      • 2020-04-22
      • 2013-05-27
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多