【问题标题】:Why doesn't gnu prolog support the "false" predicate? (I've changed to swi)为什么 gnu prolog 不支持“假”谓词? (我已更改为 swi)
【发布时间】:2010-11-12 15:43:42
【问题描述】:

我一直在使用 gprolog 的东西在 prolog 中做一些事情。但是现在在测试更多代码时,我发现它不支持“false”。 swi支持哪个?

【问题讨论】:

    标签: prolog gnu-prolog iso-prolog


    【解决方案1】:

    使用fail 代替false。我相信前者在 Prolog 的 ISO 标准中。否则,请自行定义:

    false :- 0=1.
    

    fail :- 0=1.
    

    【讨论】:

    • false :- fail. 不是一个更清晰的定义,因为您以某种方式暗示它们具有相同的效果和/或同义词?
    • 我的意思是:如果两者都不可用,这就是实现其中之一的方式。改变了我的答案。
    • 与此同时,ISO Prolog 现在同时拥有failfalse。它在 GNU 和许多其他系统中可用。
    【解决方案2】:

    最新版本的 GNU Prolog (1.4.0) 支持 false/0

    false/0 在 1995 年的原始 ISO 标准中没有定义,而是part of Cor.2:2012

    【讨论】:

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