【问题标题】:is fail/0 the same as 1=2?fail/0 和 1=2 一样吗?
【发布时间】:2022-11-22 10:47:15
【问题描述】:

prolog 中的谓词 fail/0 可能很有用,例如测试终止。

?- q, fail.

如果此查询终止,则我们知道查询?- q. 也终止了。

问题

fail/0是否等同于任何失败的目标,例如1=2

下面的测试和上面的一样吗?

?- q, 1=2.

【问题讨论】:

    标签: prolog swi-prolog


    【解决方案1】:

    如果 q 为真,将 (true, fail),然后 (true) 终止?我不这么认为!

    不应假定失败完全等同于评估失败的“任何”目标。在某些情况下,可能会有残留影响。

    简而言之,它们是不同的评估。

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      相关资源
      最近更新 更多