【问题标题】:Return value in PrologProlog 中的返回值
【发布时间】:2016-07-14 16:16:44
【问题描述】:

我发现 Prolog 中的一些“函数”会返回一些值,例如 min/2 和 max/2 等,尽管绝大多数只返回 true 或 false。这些调用或分组与布尔值不同吗?除了查看每个函数的文档之外,如何识别它们是否返回了一个值。我可以在某处找到返回某些值的函数列表吗?

【问题讨论】:

  • 谓词不返回任何东西,它们将变量与值统一。此外,谓词成功 (true) 或失败 (false)。
  • 最大值和最小值呢?

标签: prolog


【解决方案1】:

minmaxlog 等操作是特定的arithmetic functions,与标准谓词不同。它们使用is/2=:=/2 等进行评估。标准谓词不返回 值,甚至不为真或假。他们成功或失败。这与返回值不同。将值作为函数返回意味着您可以在变量中捕获该值,但谓词没有返回真/假数据。 Prolog 解释器只显示真或假,让您知道它是否成功。一些解释器可能分别输出是或否而不是真或假。

为了知道给定的术语是谓词还是函数,上面引用的文档是您最好的选择,因为它列出了所有有效的算术函数。这一切都在一个地方,所以并不难。函数只对数字进行操作。例如,您还可以使用 current_arithmetic_function(Head)(如文档中所述)来确定 Head 是否是可评估函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    相关资源
    最近更新 更多