【问题标题】:Simple Constraint Logic Programming sample CLP(Q) gives error in Prolog简单约束逻辑编程示例 CLP(Q) 在 Prolog 中给出错误
【发布时间】:2021-07-24 08:34:24
【问题描述】:

我已经开始学习 Prolog 并遵循 RIPTutorial PDF。在Constraint Logic Programming CLP(Q) 部分,它说:

约束逻辑编程 CLP(Q) 实现对有理数数的推理

例子:

?- { 5/6 = X/2 + 1/3 }.
X = 1.

当我在 Windows 上的 SWI-Prolog 上尝试这一行时,它给出了:

ERROR: Unknown procedure: {}/1 (DWIM could not correct goal)

macOS 上命令行 SWI-Prolog-7.2.0 上的同一行给出:

ERROR: toplevel: Undefined procedure: {}/1 (DWIM could not correct goal)

如何得到X = 1.的预期输出?

【问题讨论】:

  • 你先加载库了吗?
  • @jkiiski 不,我没有。在教程中,没有提到任何库。
  • @Guy Coder,当我输入use_module(library(clpr)). 时,一切正常。在教程中没有提到use_module
  • 请务必使用library(clpq) clpr
  • @GuyCoder:这个问题适用于许多类似的 Prolog。事实上,SICStus 是在 1990 年代初第一个以 clpq 库为特色的。将 swi-prolog 标签保留给专门针对 SWI 的问题。

标签: prolog clpq


【解决方案1】:

使用SWI-Prolog

如 cmets 中所述,您需要先加载 CLP(Q) 的代码。

?- use_module(library(clpq)).
true

然后按照示例输入查询。

?- {5/6 = X/2 + 1/3}.
X = 1.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多