问题标签 [prolog-toplevel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

prolog - Prolog 在解释器上显示结果

我有这个序言谓词,它根据输入计数计算素数。

然而,在解释器上,即使我输入所需的素数为 10,它也只显示前 9 个素数。

结果如下所示

但是,当我使用图形调试器进行跟踪时,实际上会产生正确的结果。

所以我想知道 | ... 方法?

0 投票
1 回答
288 浏览

prolog - 如何从(swi)序言输出中取出...

可能重复:
以交互方式使用 SWI-Prolog - 输出已取消

我编写了一个程序,在 Prolog 中用 8 替换 X 次出现的 1。

该程序工作正常,因为它提供了正确的输出。但是当我给它长输入时,它会缩写我的输出。如何防止这种情况?

例子:

是输出

如何在输出终端显示X的所有字符?

0 投票
1 回答
274 浏览

prolog - Prolog 规则 - 错误?

我有事实:

我对讲师的规则schedule(course,time,location)是:

如果我这样做: ?- schedule('lecturer1',C,T,L)。检查讲师1的日程安排,它将输出2组答案,

但如果我这样做: ?- 时间表(讲师,C,'time1',_)。要检查谁安排在 time1 教什么,在输出 2 组答案后应该为“假”。

有没有人如何修复“假”?

0 投票
2 回答
188 浏览

prolog - Prolog中的“?-”是什么意思?

Prolog 中的含义是什么?-

例如:

0 投票
1 回答
10856 浏览

prolog - Prolog 匿名变量

这是我对 Prolog 变量的理解。

  1. 单个下划线代表匿名变量,每次出现时就像一个新变量。

  2. 像 _W 这样以下划线开头的变量名不是匿名变量。或者,在 Prolog 中生成的变量名,比如 _G189,不被认为是匿名的:

你能帮我理解吗?

顺便说一句,我从一些教程中得到了上面的例子,但是当我在 SWI-Prolog 版本 6 中运行它时,我得到以下信息:

感谢您。

0 投票
2 回答
4777 浏览

prolog - 错误:未定义的过程:(:-)/2

我是Prolog的新手,我正在尝试在SWI-Prolog shell 上设置规则,例如 -

但它提示——

我使用 SWI-Prolog 版本 6.2.6

0 投票
3 回答
3929 浏览

prolog - Prolog 列表成员资格,返回多个结果

我有一个确定列表成员资格的标准程序:

我不明白为什么当我提出以下查询时:

结果是

我会认为在使用第一条规则(因为 a 是列表的头部)满足目标时,将返回 True,这将是 if 的结束。似乎它正在尝试使用第二条规则来满足目标并且失败了?

Prolog 解释器是 SWI-Prolog。

0 投票
1 回答
1570 浏览

prolog - 更改 Prolog 的返回响应

我是prolog编程的新手。

我想更改 prolog 程序返回的值,使其返回 true / false 而不是标准的 yes 或 no。

考虑一个非常简单的例子:例如 simple.P

在 prolog 命令行上,如果我键入 isNode(1),它会返回 yes,例如:

我的问题是:

我如何将其从“是”更改为“真”?

0 投票
1 回答
98 浏览

prolog - 如何在 Prolog 查询 shell 中使用变量?

我知道我可以在 Prolog shell 中使用变量(类似于使用 '$' 字符,我想……但我不记得了……)

如果我执行以下查询,它似乎工作正常:

但是如果我尝试分别执行两个查询leggiFile/2tokenizzaLista/2,这样就会出错:

为什么?在我看来很奇怪。我错过了什么?

0 投票
1 回答
2289 浏览

module - Reload imported modules

The "problem" I am facing is that if I use the SWI-Prolog module system, defining modules and using them in other modules, if an imported module changes SWI-Prolog does not take it in consideration when loading the importing module. For example:

If I now load them:

If I now change the file:

How should I force Prolog to consult all the imported modules and the modules they import, short of using consult?