【问题标题】:max predicate is not recognized by prolog SWIprolog SWI 无法识别最大谓词
【发布时间】:2014-10-25 08:43:43
【问题描述】:

当我查询 max 时,出现以下错误

?-max(2,3).
ERROR: toplevel: Undefined procedure: max/2 (DWIM could not correct goal)

据我了解,max 是库定义的谓词,应该按原样工作。 我提到了http://www.swi-prolog.org/pldoc/man?section=arith,我发现查询没有问题。类似地 min(2,3)。也不行。

虽然 member 、 length 等其他函数运行良好。 有什么问题吗??

【问题讨论】:

    标签: prolog


    【解决方案1】:

    那些不是谓词,它们是需要被评估的算术函数。例如,您可以使用is/2

    ?- A is max(2, 3), B is min(2, 3).
    A = 3,
    B = 2.
    

    或任何其他采用算术表达式的谓词/运算符:

    ?- min(2, 3) > max(1, 0).
    true.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2012-04-06
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多