【发布时间】: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 的问题。